@welshman/util 0.0.1

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.
Files changed (57) hide show
  1. package/README.md +14 -0
  2. package/build/Address.cjs +44 -0
  3. package/build/Address.cjs.map +1 -0
  4. package/build/Address.d.ts +21 -0
  5. package/build/Address.mjs +32 -0
  6. package/build/Address.mjs.map +1 -0
  7. package/build/Events.cjs +58 -0
  8. package/build/Events.cjs.map +1 -0
  9. package/build/Events.d.ts +34 -0
  10. package/build/Events.mjs +42 -0
  11. package/build/Events.mjs.map +1 -0
  12. package/build/Filters.cjs +139 -0
  13. package/build/Filters.cjs.map +1 -0
  14. package/build/Filters.d.ts +39 -0
  15. package/build/Filters.mjs +127 -0
  16. package/build/Filters.mjs.map +1 -0
  17. package/build/Kinds.cjs +83 -0
  18. package/build/Kinds.cjs.map +1 -0
  19. package/build/Kinds.d.ts +77 -0
  20. package/build/Kinds.mjs +78 -0
  21. package/build/Kinds.mjs.map +1 -0
  22. package/build/Links.cjs +8 -0
  23. package/build/Links.cjs.map +1 -0
  24. package/build/Links.d.ts +2 -0
  25. package/build/Links.mjs +3 -0
  26. package/build/Links.mjs.map +1 -0
  27. package/build/Relay.cjs +148 -0
  28. package/build/Relay.cjs.map +1 -0
  29. package/build/Relay.d.ts +23 -0
  30. package/build/Relay.mjs +144 -0
  31. package/build/Relay.mjs.map +1 -0
  32. package/build/Relays.cjs +36 -0
  33. package/build/Relays.cjs.map +1 -0
  34. package/build/Relays.d.ts +6 -0
  35. package/build/Relays.mjs +31 -0
  36. package/build/Relays.mjs.map +1 -0
  37. package/build/Router.cjs +205 -0
  38. package/build/Router.cjs.map +1 -0
  39. package/build/Router.d.ts +128 -0
  40. package/build/Router.mjs +200 -0
  41. package/build/Router.mjs.map +1 -0
  42. package/build/Tags.cjs +149 -0
  43. package/build/Tags.cjs.map +1 -0
  44. package/build/Tags.d.ts +77 -0
  45. package/build/Tags.mjs +144 -0
  46. package/build/Tags.mjs.map +1 -0
  47. package/build/Zaps.cjs +96 -0
  48. package/build/Zaps.cjs.map +1 -0
  49. package/build/Zaps.d.ts +19 -0
  50. package/build/Zaps.mjs +89 -0
  51. package/build/Zaps.mjs.map +1 -0
  52. package/build/index.cjs +27 -0
  53. package/build/index.cjs.map +1 -0
  54. package/build/index.d.ts +10 -0
  55. package/build/index.mjs +11 -0
  56. package/build/index.mjs.map +1 -0
  57. package/package.json +38 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Router.mjs","sourceRoot":"","sources":["../Router.ts"],"names":[],"mappings":"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"}
package/build/Tags.cjs ADDED
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tags = exports.Tag = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ const Relays_1 = require("./Relays.cjs");
6
+ const Address_1 = require("./Address.cjs");
7
+ const Kinds_1 = require("./Kinds.cjs");
8
+ class Tag extends lib_1.Fluent {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.key = () => this.xs[0];
12
+ this.value = () => this.xs[1];
13
+ this.mark = () => (0, lib_1.last)(this.xs.slice(2));
14
+ this.entry = () => this.xs.slice(0, 2);
15
+ this.setKey = (k) => this.set(0, k);
16
+ this.setValue = (v) => this.set(1, v);
17
+ this.setMark = (m) => this.xs.length > 2 ? this.set(this.xs.length - 2, m) : this.append(m);
18
+ this.asAddress = () => (0, Address_1.decodeAddress)(this.value());
19
+ this.isAddress = (kind) => { var _a; return this.key() === "a" && ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.startsWith(`${kind}:`)); };
20
+ this.isGroup = () => this.isAddress(Kinds_1.GROUP_DEFINITION);
21
+ this.isCommunity = () => this.isAddress(Kinds_1.COMMUNITY_DEFINITION);
22
+ this.isContext = () => this.isAddress(Kinds_1.GROUP_DEFINITION) || this.isAddress(Kinds_1.COMMUNITY_DEFINITION);
23
+ }
24
+ }
25
+ exports.Tag = Tag;
26
+ Tag.from = (xs) => new Tag(Array.from(xs));
27
+ Tag.fromId = (id) => new Tag(["e", id]);
28
+ Tag.fromTopic = (topic) => new Tag(["t", topic]);
29
+ Tag.fromPubkey = (pubkey) => new Tag(["p", pubkey]);
30
+ Tag.fromAddress = (address) => new Tag(["a", (0, Address_1.encodeAddress)(address), address.relays[0] || ""]);
31
+ class Tags extends lib_1.Fluent {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.unwrap = () => this.xs.map(tag => tag.valueOf());
35
+ this.whereKey = (key) => this.filter(t => t.key() === key);
36
+ this.whereValue = (value) => this.filter(t => t.value() === value);
37
+ this.whereMark = (mark) => this.filter(t => t.mark() === mark);
38
+ this.filterByKey = (keys) => this.filter(t => keys.includes(t.key()));
39
+ this.filterByValue = (values) => this.filter(t => values.includes(t.value()));
40
+ this.filterByMark = (marks) => this.filter(t => marks.includes(t.mark()));
41
+ this.rejectByKey = (keys) => this.reject(t => keys.includes(t.key()));
42
+ this.rejectByValue = (values) => this.reject(t => values.includes(t.value()));
43
+ this.rejectByMark = (marks) => this.reject(t => marks.includes(t.mark()));
44
+ this.get = (key) => this.whereKey(key).first();
45
+ this.keys = () => this.mapTo(t => t.key());
46
+ this.values = (key) => (key ? this.filterByKey((0, lib_1.ensurePlural)(key)) : this).mapTo(t => t.value());
47
+ this.marks = () => this.mapTo(t => t.mark());
48
+ this.entries = () => this.mapTo(t => t.entry());
49
+ this.relays = () => this.flatMap((t) => t.valueOf().filter(Relays_1.isShareableRelayUrl).map(url => (0, Relays_1.normalizeRelayUrl)(url))).uniq();
50
+ this.topics = () => this.whereKey("t").values().map((t) => t.replace(/^#/, ""));
51
+ this.ancestors = (x) => {
52
+ const tags = this.filterByKey(["a", "e", "q"]).reject(t => t.isContext());
53
+ const parentTags = tags.filterByKey(["a", "e"]);
54
+ const mentionTags = tags.whereKey("q");
55
+ const roots = [];
56
+ const replies = [];
57
+ const mentions = [];
58
+ parentTags
59
+ .forEach((t, i) => {
60
+ if (t.mark() === 'root') {
61
+ roots.push(t.valueOf());
62
+ }
63
+ else if (t.mark() === 'reply') {
64
+ replies.push(t.valueOf());
65
+ }
66
+ else if (t.mark() === 'mention') {
67
+ mentions.push(t.valueOf());
68
+ }
69
+ else if (i === parentTags.count() - 1) {
70
+ replies.push(t.valueOf());
71
+ }
72
+ else if (i === 0) {
73
+ roots.push(t.valueOf());
74
+ }
75
+ else {
76
+ mentions.push(t.valueOf());
77
+ }
78
+ });
79
+ // Add quotes as mentions separately so positional logic above works
80
+ mentionTags.forEach((t) => mentions.push(t.valueOf()));
81
+ return {
82
+ roots: Tags.wrap(roots),
83
+ replies: Tags.wrap(replies),
84
+ mentions: Tags.wrap(mentions),
85
+ };
86
+ };
87
+ this.roots = () => this.ancestors().roots;
88
+ this.replies = () => this.ancestors().replies;
89
+ this.mentions = () => this.ancestors().mentions;
90
+ this.root = () => {
91
+ const roots = this.roots();
92
+ return roots.get("e") || roots.get("a");
93
+ };
94
+ this.reply = () => {
95
+ const replies = this.replies();
96
+ return replies.get("e") || replies.get("a");
97
+ };
98
+ this.parents = () => {
99
+ const { roots, replies } = this.ancestors();
100
+ return replies.exists() ? replies : roots;
101
+ };
102
+ this.parent = () => {
103
+ const parents = this.parents();
104
+ return parents.get("e") || parents.get("a");
105
+ };
106
+ this.groups = () => this.whereKey("a").filter(t => t.isGroup());
107
+ this.communities = () => this.whereKey("a").filter(t => t.isCommunity());
108
+ this.context = () => this.whereKey("a").filter(t => t.isContext());
109
+ this.asObject = () => {
110
+ const result = {};
111
+ for (const t of this.xs) {
112
+ result[t.key()] = t.value();
113
+ }
114
+ return result;
115
+ };
116
+ this.imeta = (url) => {
117
+ var _a;
118
+ for (const tag of this.whereKey("imeta").xs) {
119
+ const tags = Tags.fromIMeta(tag.drop(1).valueOf());
120
+ if (((_a = tags.get("url")) === null || _a === void 0 ? void 0 : _a.value()) === url) {
121
+ return tags;
122
+ }
123
+ }
124
+ return null;
125
+ };
126
+ // Generic setters
127
+ this.addTag = (...args) => this.append(Tag.from(args));
128
+ this.setTag = (k, ...args) => this.rejectByKey([k]).addTag(k, ...args);
129
+ // Context
130
+ this.addContext = (addresses) => this.concat(addresses.map(a => Tag.from(["a", a])));
131
+ this.removeContext = () => this.reject(t => t.isContext());
132
+ this.setContext = (addresses) => this.removeContext().addContext(addresses);
133
+ // Images
134
+ this.addImages = (imeta) => this.concat(imeta.map(tags => Tag.from(["image", tags.get("url").value()])));
135
+ this.removeImages = () => this.rejectByKey(['image']);
136
+ this.setImages = (imeta) => this.removeImages().addImages(imeta);
137
+ // IMeta
138
+ this.addIMeta = (imeta) => this.concat(imeta.map(tags => Tag.from(["imeta", ...tags.valueOf().map(xs => xs.join(" "))])));
139
+ this.removeIMeta = () => this.rejectByKey(['imeta']);
140
+ this.setIMeta = (imeta) => this.removeIMeta().addIMeta(imeta);
141
+ }
142
+ }
143
+ exports.Tags = Tags;
144
+ Tags.from = (p) => new Tags(Array.from(p));
145
+ Tags.wrap = (p) => new Tags(Array.from(p).map(Tag.from));
146
+ Tags.fromEvent = (event) => Tags.wrap(event.tags || []);
147
+ Tags.fromEvents = (events) => Tags.wrap(events.flatMap(e => e.tags || []));
148
+ Tags.fromIMeta = (imeta) => Tags.wrap(imeta.map((m) => m.split(" ")));
149
+ //# sourceMappingURL=Tags.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tags.cjs","sourceRoot":"","sources":["../Tags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import { EventTemplate } from 'nostr-tools';
2
+ import { Fluent } from '@welshman/lib';
3
+ import type { Address } from './Address';
4
+ declare const Tag_base: (new (xs: string[]) => Fluent<string>) & Omit<typeof Fluent<string>, "from">;
5
+ export declare class Tag extends Tag_base {
6
+ static from: (xs: Iterable<string>) => Tag;
7
+ static fromId: (id: string) => Tag;
8
+ static fromTopic: (topic: string) => Tag;
9
+ static fromPubkey: (pubkey: string) => Tag;
10
+ static fromAddress: (address: Address) => Tag;
11
+ key: () => string;
12
+ value: () => string;
13
+ mark: () => string;
14
+ entry: () => string[];
15
+ setKey: (k: string) => this;
16
+ setValue: (v: string) => this;
17
+ setMark: (m: string) => this;
18
+ asAddress: () => Address;
19
+ isAddress: (kind?: number) => boolean;
20
+ isGroup: () => boolean;
21
+ isCommunity: () => boolean;
22
+ isContext: () => boolean;
23
+ }
24
+ declare const Tags_base: (new (xs: Tag[]) => Fluent<Tag>) & Omit<typeof Fluent<Tag>, "from">;
25
+ export declare class Tags extends Tags_base {
26
+ static from: (p: Iterable<Tag>) => Tags;
27
+ static wrap: (p: Iterable<string[]>) => Tags;
28
+ static fromEvent: (event: Pick<EventTemplate, "tags">) => Tags;
29
+ static fromEvents: (events: Pick<EventTemplate, "tags">[]) => Tags;
30
+ static fromIMeta: (imeta: string[]) => Tags;
31
+ unwrap: () => string[][];
32
+ whereKey: (key: string) => this;
33
+ whereValue: (value: string) => this;
34
+ whereMark: (mark: string) => this;
35
+ filterByKey: (keys: string[]) => this;
36
+ filterByValue: (values: string[]) => this;
37
+ filterByMark: (marks: string[]) => this;
38
+ rejectByKey: (keys: string[]) => this;
39
+ rejectByValue: (values: string[]) => this;
40
+ rejectByMark: (marks: string[]) => this;
41
+ get: (key: string) => Tag;
42
+ keys: () => Fluent<string>;
43
+ values: (key?: string | string[]) => Fluent<string>;
44
+ marks: () => Fluent<string>;
45
+ entries: () => Fluent<string[]>;
46
+ relays: () => Fluent<string>;
47
+ topics: () => Fluent<string>;
48
+ ancestors: (x?: boolean) => {
49
+ roots: Tags;
50
+ replies: Tags;
51
+ mentions: Tags;
52
+ };
53
+ roots: () => Tags;
54
+ replies: () => Tags;
55
+ mentions: () => Tags;
56
+ root: () => Tag;
57
+ reply: () => Tag;
58
+ parents: () => Tags;
59
+ parent: () => Tag;
60
+ groups: () => this;
61
+ communities: () => this;
62
+ context: () => this;
63
+ asObject: () => Record<string, string>;
64
+ imeta: (url: string) => Tags | null;
65
+ addTag: (...args: string[]) => this;
66
+ setTag: (k: string, ...args: string[]) => this;
67
+ addContext: (addresses: string[]) => this;
68
+ removeContext: () => this;
69
+ setContext: (addresses: string[]) => this;
70
+ addImages: (imeta: Tags[]) => this;
71
+ removeImages: () => this;
72
+ setImages: (imeta: Tags[]) => this;
73
+ addIMeta: (imeta: Tags[]) => this;
74
+ removeIMeta: () => this;
75
+ setIMeta: (imeta: Tags[]) => this;
76
+ }
77
+ export {};
package/build/Tags.mjs ADDED
@@ -0,0 +1,144 @@
1
+ import { Fluent, ensurePlural, last } from '@welshman/lib';
2
+ import { isShareableRelayUrl, normalizeRelayUrl } from "./Relays.mjs";
3
+ import { encodeAddress, decodeAddress } from "./Address.mjs";
4
+ import { GROUP_DEFINITION, COMMUNITY_DEFINITION } from "./Kinds.mjs";
5
+ export class Tag extends Fluent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.key = () => this.xs[0];
9
+ this.value = () => this.xs[1];
10
+ this.mark = () => last(this.xs.slice(2));
11
+ this.entry = () => this.xs.slice(0, 2);
12
+ this.setKey = (k) => this.set(0, k);
13
+ this.setValue = (v) => this.set(1, v);
14
+ this.setMark = (m) => this.xs.length > 2 ? this.set(this.xs.length - 2, m) : this.append(m);
15
+ this.asAddress = () => decodeAddress(this.value());
16
+ this.isAddress = (kind) => { var _a; return this.key() === "a" && ((_a = this.value()) === null || _a === void 0 ? void 0 : _a.startsWith(`${kind}:`)); };
17
+ this.isGroup = () => this.isAddress(GROUP_DEFINITION);
18
+ this.isCommunity = () => this.isAddress(COMMUNITY_DEFINITION);
19
+ this.isContext = () => this.isAddress(GROUP_DEFINITION) || this.isAddress(COMMUNITY_DEFINITION);
20
+ }
21
+ }
22
+ Tag.from = (xs) => new Tag(Array.from(xs));
23
+ Tag.fromId = (id) => new Tag(["e", id]);
24
+ Tag.fromTopic = (topic) => new Tag(["t", topic]);
25
+ Tag.fromPubkey = (pubkey) => new Tag(["p", pubkey]);
26
+ Tag.fromAddress = (address) => new Tag(["a", encodeAddress(address), address.relays[0] || ""]);
27
+ export class Tags extends Fluent {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.unwrap = () => this.xs.map(tag => tag.valueOf());
31
+ this.whereKey = (key) => this.filter(t => t.key() === key);
32
+ this.whereValue = (value) => this.filter(t => t.value() === value);
33
+ this.whereMark = (mark) => this.filter(t => t.mark() === mark);
34
+ this.filterByKey = (keys) => this.filter(t => keys.includes(t.key()));
35
+ this.filterByValue = (values) => this.filter(t => values.includes(t.value()));
36
+ this.filterByMark = (marks) => this.filter(t => marks.includes(t.mark()));
37
+ this.rejectByKey = (keys) => this.reject(t => keys.includes(t.key()));
38
+ this.rejectByValue = (values) => this.reject(t => values.includes(t.value()));
39
+ this.rejectByMark = (marks) => this.reject(t => marks.includes(t.mark()));
40
+ this.get = (key) => this.whereKey(key).first();
41
+ this.keys = () => this.mapTo(t => t.key());
42
+ this.values = (key) => (key ? this.filterByKey(ensurePlural(key)) : this).mapTo(t => t.value());
43
+ this.marks = () => this.mapTo(t => t.mark());
44
+ this.entries = () => this.mapTo(t => t.entry());
45
+ this.relays = () => this.flatMap((t) => t.valueOf().filter(isShareableRelayUrl).map(url => normalizeRelayUrl(url))).uniq();
46
+ this.topics = () => this.whereKey("t").values().map((t) => t.replace(/^#/, ""));
47
+ this.ancestors = (x) => {
48
+ const tags = this.filterByKey(["a", "e", "q"]).reject(t => t.isContext());
49
+ const parentTags = tags.filterByKey(["a", "e"]);
50
+ const mentionTags = tags.whereKey("q");
51
+ const roots = [];
52
+ const replies = [];
53
+ const mentions = [];
54
+ parentTags
55
+ .forEach((t, i) => {
56
+ if (t.mark() === 'root') {
57
+ roots.push(t.valueOf());
58
+ }
59
+ else if (t.mark() === 'reply') {
60
+ replies.push(t.valueOf());
61
+ }
62
+ else if (t.mark() === 'mention') {
63
+ mentions.push(t.valueOf());
64
+ }
65
+ else if (i === parentTags.count() - 1) {
66
+ replies.push(t.valueOf());
67
+ }
68
+ else if (i === 0) {
69
+ roots.push(t.valueOf());
70
+ }
71
+ else {
72
+ mentions.push(t.valueOf());
73
+ }
74
+ });
75
+ // Add quotes as mentions separately so positional logic above works
76
+ mentionTags.forEach((t) => mentions.push(t.valueOf()));
77
+ return {
78
+ roots: Tags.wrap(roots),
79
+ replies: Tags.wrap(replies),
80
+ mentions: Tags.wrap(mentions),
81
+ };
82
+ };
83
+ this.roots = () => this.ancestors().roots;
84
+ this.replies = () => this.ancestors().replies;
85
+ this.mentions = () => this.ancestors().mentions;
86
+ this.root = () => {
87
+ const roots = this.roots();
88
+ return roots.get("e") || roots.get("a");
89
+ };
90
+ this.reply = () => {
91
+ const replies = this.replies();
92
+ return replies.get("e") || replies.get("a");
93
+ };
94
+ this.parents = () => {
95
+ const { roots, replies } = this.ancestors();
96
+ return replies.exists() ? replies : roots;
97
+ };
98
+ this.parent = () => {
99
+ const parents = this.parents();
100
+ return parents.get("e") || parents.get("a");
101
+ };
102
+ this.groups = () => this.whereKey("a").filter(t => t.isGroup());
103
+ this.communities = () => this.whereKey("a").filter(t => t.isCommunity());
104
+ this.context = () => this.whereKey("a").filter(t => t.isContext());
105
+ this.asObject = () => {
106
+ const result = {};
107
+ for (const t of this.xs) {
108
+ result[t.key()] = t.value();
109
+ }
110
+ return result;
111
+ };
112
+ this.imeta = (url) => {
113
+ var _a;
114
+ for (const tag of this.whereKey("imeta").xs) {
115
+ const tags = Tags.fromIMeta(tag.drop(1).valueOf());
116
+ if (((_a = tags.get("url")) === null || _a === void 0 ? void 0 : _a.value()) === url) {
117
+ return tags;
118
+ }
119
+ }
120
+ return null;
121
+ };
122
+ // Generic setters
123
+ this.addTag = (...args) => this.append(Tag.from(args));
124
+ this.setTag = (k, ...args) => this.rejectByKey([k]).addTag(k, ...args);
125
+ // Context
126
+ this.addContext = (addresses) => this.concat(addresses.map(a => Tag.from(["a", a])));
127
+ this.removeContext = () => this.reject(t => t.isContext());
128
+ this.setContext = (addresses) => this.removeContext().addContext(addresses);
129
+ // Images
130
+ this.addImages = (imeta) => this.concat(imeta.map(tags => Tag.from(["image", tags.get("url").value()])));
131
+ this.removeImages = () => this.rejectByKey(['image']);
132
+ this.setImages = (imeta) => this.removeImages().addImages(imeta);
133
+ // IMeta
134
+ this.addIMeta = (imeta) => this.concat(imeta.map(tags => Tag.from(["imeta", ...tags.valueOf().map(xs => xs.join(" "))])));
135
+ this.removeIMeta = () => this.rejectByKey(['imeta']);
136
+ this.setIMeta = (imeta) => this.removeIMeta().addIMeta(imeta);
137
+ }
138
+ }
139
+ Tags.from = (p) => new Tags(Array.from(p));
140
+ Tags.wrap = (p) => new Tags(Array.from(p).map(Tag.from));
141
+ Tags.fromEvent = (event) => Tags.wrap(event.tags || []);
142
+ Tags.fromEvents = (events) => Tags.wrap(events.flatMap(e => e.tags || []));
143
+ Tags.fromIMeta = (imeta) => Tags.wrap(imeta.map((m) => m.split(" ")));
144
+ //# sourceMappingURL=Tags.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tags.mjs","sourceRoot":"","sources":["../Tags.ts"],"names":[],"mappings":"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"}
package/build/Zaps.cjs ADDED
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zapFromEvent = exports.getLnUrl = exports.getInvoiceAmount = exports.hrpToMillisat = void 0;
4
+ const lib_1 = require("@welshman/lib");
5
+ const Tags_1 = require("./Tags.cjs");
6
+ const DIVISORS = {
7
+ m: BigInt(1e3),
8
+ u: BigInt(1e6),
9
+ n: BigInt(1e9),
10
+ p: BigInt(1e12),
11
+ };
12
+ const MAX_MILLISATS = BigInt("2100000000000000000");
13
+ const MILLISATS_PER_BTC = BigInt(1e11);
14
+ const hrpToMillisat = (hrpString) => {
15
+ let divisor, value;
16
+ if (hrpString.slice(-1).match(/^[munp]$/)) {
17
+ divisor = hrpString.slice(-1);
18
+ value = hrpString.slice(0, -1);
19
+ }
20
+ else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {
21
+ throw new Error("Not a valid multiplier for the amount");
22
+ }
23
+ else {
24
+ value = hrpString;
25
+ }
26
+ if (!value.match(/^\d+$/))
27
+ throw new Error("Not a valid human readable amount");
28
+ const valueBN = BigInt(value);
29
+ const millisatoshisBN = divisor
30
+ ? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]
31
+ : valueBN * MILLISATS_PER_BTC;
32
+ if ((divisor === "p" && !(valueBN % BigInt(10) === BigInt(0))) ||
33
+ millisatoshisBN > MAX_MILLISATS) {
34
+ throw new Error("Amount is outside of valid range");
35
+ }
36
+ return millisatoshisBN;
37
+ };
38
+ exports.hrpToMillisat = hrpToMillisat;
39
+ const getInvoiceAmount = (bolt11) => {
40
+ const hrp = bolt11.match(/lnbc(\d+\w)/);
41
+ const bn = (0, exports.hrpToMillisat)(hrp[1]);
42
+ return Number(bn);
43
+ };
44
+ exports.getInvoiceAmount = getInvoiceAmount;
45
+ const getLnUrl = (address) => {
46
+ if (address.startsWith("lnurl1")) {
47
+ return address;
48
+ }
49
+ // If it's a regular url, just encode it
50
+ if (address.includes("://")) {
51
+ return (0, lib_1.hexToBech32)("lnurl", address);
52
+ }
53
+ // Try to parse it as a lud16 address
54
+ if (address.includes("@")) {
55
+ const [name, domain] = address.split("@");
56
+ if (domain && name) {
57
+ return (0, lib_1.hexToBech32)("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
58
+ }
59
+ }
60
+ return null;
61
+ };
62
+ exports.getLnUrl = getLnUrl;
63
+ const zapFromEvent = (response, zapper) => {
64
+ const responseMeta = Tags_1.Tags.fromEvent(response).asObject();
65
+ let zap;
66
+ try {
67
+ zap = {
68
+ response,
69
+ invoiceAmount: (0, exports.getInvoiceAmount)(responseMeta.bolt11),
70
+ request: JSON.parse(responseMeta.description),
71
+ };
72
+ }
73
+ catch (e) {
74
+ return null;
75
+ }
76
+ // Don't count zaps that the user sent himself
77
+ if (zap.request.pubkey === zapper.pubkey) {
78
+ return null;
79
+ }
80
+ const { amount, lnurl } = Tags_1.Tags.fromEvent(zap.request).asObject();
81
+ // Verify that the zapper actually sent the requested amount (if it was supplied)
82
+ if (amount && parseInt(amount) !== zap.invoiceAmount) {
83
+ return null;
84
+ }
85
+ // If the sending client provided an lnurl tag, verify that too
86
+ if (lnurl && lnurl !== zapper.lnurl) {
87
+ return null;
88
+ }
89
+ // Verify that the request actually came from the recipient's zapper
90
+ if (zap.response.pubkey !== zapper.nostrPubkey) {
91
+ return null;
92
+ }
93
+ return zap;
94
+ };
95
+ exports.zapFromEvent = zapFromEvent;
96
+ //# sourceMappingURL=Zaps.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Zaps.cjs","sourceRoot":"","sources":["../Zaps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Event } from 'nostr-tools';
2
+ export declare const hrpToMillisat: (hrpString: string) => bigint;
3
+ export declare const getInvoiceAmount: (bolt11: string) => number;
4
+ export declare const getLnUrl: (address: string) => string | null;
5
+ export type Zapper = {
6
+ lnurl: string;
7
+ pubkey: string;
8
+ callback: string;
9
+ minSendable: number;
10
+ maxSendable: number;
11
+ nostrPubkey: string;
12
+ allowsNostr: boolean;
13
+ };
14
+ export type Zap = {
15
+ request: Event;
16
+ response: Event;
17
+ invoiceAmount: number;
18
+ };
19
+ export declare const zapFromEvent: (response: Event, zapper: Zapper) => Zap | null;
package/build/Zaps.mjs ADDED
@@ -0,0 +1,89 @@
1
+ import { hexToBech32 } from '@welshman/lib';
2
+ import { Tags } from "./Tags.mjs";
3
+ const DIVISORS = {
4
+ m: BigInt(1e3),
5
+ u: BigInt(1e6),
6
+ n: BigInt(1e9),
7
+ p: BigInt(1e12),
8
+ };
9
+ const MAX_MILLISATS = BigInt("2100000000000000000");
10
+ const MILLISATS_PER_BTC = BigInt(1e11);
11
+ export const hrpToMillisat = (hrpString) => {
12
+ let divisor, value;
13
+ if (hrpString.slice(-1).match(/^[munp]$/)) {
14
+ divisor = hrpString.slice(-1);
15
+ value = hrpString.slice(0, -1);
16
+ }
17
+ else if (hrpString.slice(-1).match(/^[^munp0-9]$/)) {
18
+ throw new Error("Not a valid multiplier for the amount");
19
+ }
20
+ else {
21
+ value = hrpString;
22
+ }
23
+ if (!value.match(/^\d+$/))
24
+ throw new Error("Not a valid human readable amount");
25
+ const valueBN = BigInt(value);
26
+ const millisatoshisBN = divisor
27
+ ? (valueBN * MILLISATS_PER_BTC) / DIVISORS[divisor]
28
+ : valueBN * MILLISATS_PER_BTC;
29
+ if ((divisor === "p" && !(valueBN % BigInt(10) === BigInt(0))) ||
30
+ millisatoshisBN > MAX_MILLISATS) {
31
+ throw new Error("Amount is outside of valid range");
32
+ }
33
+ return millisatoshisBN;
34
+ };
35
+ export const getInvoiceAmount = (bolt11) => {
36
+ const hrp = bolt11.match(/lnbc(\d+\w)/);
37
+ const bn = hrpToMillisat(hrp[1]);
38
+ return Number(bn);
39
+ };
40
+ export const getLnUrl = (address) => {
41
+ if (address.startsWith("lnurl1")) {
42
+ return address;
43
+ }
44
+ // If it's a regular url, just encode it
45
+ if (address.includes("://")) {
46
+ return hexToBech32("lnurl", address);
47
+ }
48
+ // Try to parse it as a lud16 address
49
+ if (address.includes("@")) {
50
+ const [name, domain] = address.split("@");
51
+ if (domain && name) {
52
+ return hexToBech32("lnurl", `https://${domain}/.well-known/lnurlp/${name}`);
53
+ }
54
+ }
55
+ return null;
56
+ };
57
+ export const zapFromEvent = (response, zapper) => {
58
+ const responseMeta = Tags.fromEvent(response).asObject();
59
+ let zap;
60
+ try {
61
+ zap = {
62
+ response,
63
+ invoiceAmount: getInvoiceAmount(responseMeta.bolt11),
64
+ request: JSON.parse(responseMeta.description),
65
+ };
66
+ }
67
+ catch (e) {
68
+ return null;
69
+ }
70
+ // Don't count zaps that the user sent himself
71
+ if (zap.request.pubkey === zapper.pubkey) {
72
+ return null;
73
+ }
74
+ const { amount, lnurl } = Tags.fromEvent(zap.request).asObject();
75
+ // Verify that the zapper actually sent the requested amount (if it was supplied)
76
+ if (amount && parseInt(amount) !== zap.invoiceAmount) {
77
+ return null;
78
+ }
79
+ // If the sending client provided an lnurl tag, verify that too
80
+ if (lnurl && lnurl !== zapper.lnurl) {
81
+ return null;
82
+ }
83
+ // Verify that the request actually came from the recipient's zapper
84
+ if (zap.response.pubkey !== zapper.nostrPubkey) {
85
+ return null;
86
+ }
87
+ return zap;
88
+ };
89
+ //# sourceMappingURL=Zaps.mjs.map