@welshman/signer 0.0.15 → 0.0.16

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.
@@ -1,234 +1,303 @@
1
1
  "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResponse, _Nip46Broker_queue, _Nip46Broker_window, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Broker_getResult, _Nip46Signer_pubkey;
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Nip46Signer = exports.Nip46Broker = void 0;
3
+ exports.Nip46Signer = exports.Nip46Broker = exports.Nip46Request = exports.Nip46Sender = exports.Nip46Receiver = exports.Nip46Event = void 0;
4
+ const throttle_debounce_1 = require("throttle-debounce");
16
5
  const lib_1 = require("@welshman/lib");
17
6
  const util_1 = require("@welshman/util");
18
7
  const net_1 = require("@welshman/net");
19
8
  const util_2 = require("../util.cjs");
20
9
  const nip01_1 = require("./nip01.cjs");
10
+ var Nip46Event;
11
+ (function (Nip46Event) {
12
+ Nip46Event["Send"] = "send";
13
+ Nip46Event["Receive"] = "receive";
14
+ })(Nip46Event || (exports.Nip46Event = Nip46Event = {}));
21
15
  let singleton;
22
- class Nip46Broker extends lib_1.Emitter {
23
- static initiate({ url, name, image, perms, relays, abortController }) {
24
- const secret = Math.random().toString(36).substring(7);
25
- const clientSecret = (0, util_2.makeSecret)();
26
- const clientPubkey = (0, util_2.getPubkey)(clientSecret);
27
- const clientSigner = new nip01_1.Nip01Signer(clientSecret);
28
- const params = new URLSearchParams({ secret, url, name, image, perms });
29
- for (const relay of relays) {
30
- params.append('relay', relay);
16
+ const popupManager = (() => {
17
+ let pendingUrl = "";
18
+ let pendingSince = 0;
19
+ let currentWindow;
20
+ const openPending = (0, throttle_debounce_1.throttle)(1000, () => {
21
+ // If it's been a while since they asked for it, drop the request
22
+ if (Date.now() - pendingSince > 10000)
23
+ return;
24
+ // If we have an active, open window, continue to wait
25
+ if (currentWindow && !currentWindow.closed) {
26
+ setTimeout(() => openPending(), 100);
31
27
  }
32
- const nostrconnect = `nostrconnect://${clientPubkey}?${params.toString()}`;
33
- const result = new Promise(resolve => {
34
- const complete = (pubkey) => {
35
- sub.close();
36
- resolve(pubkey);
37
- };
38
- const sub = (0, net_1.subscribe)({
39
- relays,
40
- filters: [{ kinds: [util_1.NOSTR_CONNECT], "#p": [clientPubkey] }],
41
- onEvent: async ({ pubkey, content }) => {
42
- const response = await (0, lib_1.tryCatch)(async () => JSON.parse(await (0, util_2.decrypt)(clientSigner, pubkey, content)));
43
- if ((response === null || response === void 0 ? void 0 : response.result) === secret) {
44
- complete(pubkey);
45
- }
46
- if ((response === null || response === void 0 ? void 0 : response.result) === 'ack') {
47
- console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
48
- complete(pubkey);
49
- }
50
- },
51
- });
52
- abortController === null || abortController === void 0 ? void 0 : abortController.signal.addEventListener('abort', () => complete());
53
- });
54
- return { result, params, nostrconnect, clientSecret, clientPubkey };
55
- }
56
- static parseBunkerLink(link) {
57
- let token = "";
58
- let pubkey = "";
59
- let relays = [];
60
- try {
61
- const url = new URL(link);
62
- pubkey = url.hostname || url.pathname.replace(/\//g, '');
63
- relays = url.searchParams.getAll("relay") || [];
64
- token = url.searchParams.get("secret") || "";
65
- }
66
- catch (_a) {
67
- // pass
68
- }
69
- return { token, pubkey, relays };
70
- }
71
- static get(params) {
72
- if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
73
- singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
74
- singleton = new Nip46Broker(params);
28
+ else {
29
+ // Attempt to open the window
30
+ const w = window.open(pendingUrl, "", "width=600,height=800,popup=yes");
31
+ // If open was successful, keep track of our window
32
+ if (w) {
33
+ currentWindow = w;
34
+ }
35
+ // In any case, this url has been handled
36
+ pendingUrl = "";
37
+ pendingSince = 0;
75
38
  }
76
- return singleton;
77
- }
78
- constructor(params) {
39
+ });
40
+ return {
41
+ open: (url) => {
42
+ pendingUrl = url;
43
+ pendingSince = Date.now();
44
+ openPending();
45
+ },
46
+ };
47
+ })();
48
+ class Nip46Receiver extends lib_1.Emitter {
49
+ constructor(signer, params) {
79
50
  super();
51
+ this.signer = signer;
80
52
  this.params = params;
81
- _Nip46Broker_signer.set(this, void 0);
82
- _Nip46Broker_handler.set(this, void 0);
83
- _Nip46Broker_algorithm.set(this, void 0);
84
- _Nip46Broker_closed.set(this, false);
85
- _Nip46Broker_processing.set(this, false);
86
- _Nip46Broker_connectResponse.set(this, void 0);
87
- _Nip46Broker_queue.set(this, []);
88
- _Nip46Broker_window.set(this, void 0);
89
- _Nip46Broker_sub.set(this, void 0);
90
- _Nip46Broker_subscribe.set(this, async () => {
91
- const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
53
+ this.start = async () => {
54
+ if (this.sub)
55
+ return;
56
+ const userPubkey = await this.signer.getPubkey();
57
+ const filters = [{ kinds: [util_1.NOSTR_CONNECT], "#p": [userPubkey] }];
58
+ this.sub = (0, net_1.subscribe)({ relays: this.params.relays, filters });
92
59
  return new Promise(resolve => {
93
- if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
94
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
95
- }
96
- __classPrivateFieldSet(this, _Nip46Broker_sub, (0, net_1.subscribe)({
97
- relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
98
- filters: [{ kinds: [util_1.NOSTR_CONNECT], "#p": [pubkey] }],
99
- }), "f");
100
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on(net_1.SubscriptionEvent.Send, resolve);
101
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on(net_1.SubscriptionEvent.Event, async (url, event) => {
102
- const json = await (0, util_2.decrypt)(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), event.pubkey, event.content);
60
+ this.sub.emitter.on(net_1.SubscriptionEvent.Send, resolve);
61
+ this.sub.emitter.on(net_1.SubscriptionEvent.Event, async (url, event) => {
62
+ const json = await (0, util_2.decrypt)(this.signer, event.pubkey, event.content);
103
63
  const response = (0, lib_1.tryCatch)(() => JSON.parse(json)) || {};
104
- if (!response.id) {
105
- console.error(`Invalid nostr-connect response: ${json}`);
106
- }
107
64
  // Delay errors in case there's a zombie signer out there clogging things up
108
65
  if (response.error) {
109
66
  await (0, lib_1.sleep)(3000);
110
67
  }
111
- if (response.result === "auth_url") {
112
- this.emit(`auth-${response.id}`, response);
113
- }
114
- else {
115
- this.emit(`res-${response.id}`, response);
68
+ if (response.id) {
69
+ this.emit(Nip46Event.Receive, { ...response, url, event });
116
70
  }
117
71
  });
118
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
119
- __classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
72
+ this.sub.emitter.on(net_1.SubscriptionEvent.Complete, () => {
73
+ this.sub = undefined;
120
74
  });
121
75
  });
122
- });
123
- _Nip46Broker_processQueue.set(this, async () => {
124
- if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
76
+ };
77
+ this.stop = () => {
78
+ var _a;
79
+ (_a = this.sub) === null || _a === void 0 ? void 0 : _a.close();
80
+ this.removeAllListeners();
81
+ };
82
+ }
83
+ }
84
+ exports.Nip46Receiver = Nip46Receiver;
85
+ class Nip46Sender extends lib_1.Emitter {
86
+ constructor(signer, params) {
87
+ super();
88
+ this.signer = signer;
89
+ this.params = params;
90
+ this.processing = false;
91
+ this.queue = [];
92
+ this.send = async (request) => {
93
+ const { id, method, params } = request;
94
+ const { relays, signerPubkey, algorithm = "nip44" } = this.params;
95
+ if (!signerPubkey) {
96
+ throw new Error("Unable to send nip46 request without a signer pubkey");
97
+ }
98
+ const payload = JSON.stringify({ id, method, params });
99
+ const content = await this.signer[algorithm].encrypt(signerPubkey, payload);
100
+ const template = (0, util_1.createEvent)(util_1.NOSTR_CONNECT, { content, tags: [["p", signerPubkey]] });
101
+ const event = await this.signer.sign(template);
102
+ const pub = (0, net_1.publish)({ relays, event });
103
+ this.emit(Nip46Event.Send, { ...request, pub });
104
+ };
105
+ this.process = async () => {
106
+ if (this.processing) {
125
107
  return;
126
108
  }
127
- __classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
109
+ this.processing = true;
128
110
  try {
129
- while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
130
- const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
111
+ while (this.queue.length > 0) {
112
+ const [request] = this.queue.splice(0, 1);
131
113
  try {
132
- const response = await this.request(method, params);
133
- console.log('nip46 response:', { method, params, ...response });
134
- resolve(response);
114
+ await this.send(request);
135
115
  }
136
116
  catch (error) {
137
- console.error(`nip46 error:`, { method, params, ...error });
117
+ console.error(`nip46 error:`, error, request);
138
118
  }
139
119
  }
140
120
  }
141
121
  finally {
142
- __classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
122
+ this.processing = false;
143
123
  }
144
- });
145
- _Nip46Broker_getResult.set(this, async (promise) => {
146
- const { result } = await promise;
147
- return result;
148
- });
149
- this.request = async (method, params) => {
150
- if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
151
- throw new Error("Attempted to make a nip46 request with a closed broker");
152
- }
153
- if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
154
- await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
155
- }
156
- const id = (0, lib_1.randomId)();
157
- const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
158
- const payload = JSON.stringify({ id, method, params });
159
- const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
160
- const template = (0, util_1.createEvent)(util_1.NOSTR_CONNECT, { content, tags: [["p", recipient]] });
161
- console.log('nip46 request:', { id, method, params });
162
- (0, net_1.publish)({
163
- relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
164
- event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
165
- });
166
- this.once(`auth-${id}`, response => {
167
- if (!__classPrivateFieldGet(this, _Nip46Broker_window, "f") || __classPrivateFieldGet(this, _Nip46Broker_window, "f").closed) {
168
- const w = window.open(response.error, "", "width=600,height=800,popup=yes");
169
- if (w) {
170
- __classPrivateFieldSet(this, _Nip46Broker_window, w, "f");
171
- }
124
+ };
125
+ this.enqueue = (request) => {
126
+ this.queue.push(request);
127
+ this.process();
128
+ };
129
+ this.stop = () => {
130
+ this.removeAllListeners();
131
+ };
132
+ }
133
+ }
134
+ exports.Nip46Sender = Nip46Sender;
135
+ class Nip46Request {
136
+ constructor(method, params) {
137
+ this.method = method;
138
+ this.params = params;
139
+ this.id = (0, lib_1.randomId)();
140
+ this.promise = (0, lib_1.defer)();
141
+ this.listen = async (receiver) => {
142
+ await receiver.start();
143
+ const onReceive = (response) => {
144
+ if (response.id !== this.id) {
145
+ return;
172
146
  }
173
- });
174
- return new Promise((resolve, reject) => {
175
- this.once(`res-${id}`, (response) => {
147
+ if (response.result === "auth_url") {
148
+ popupManager.open(response.error);
149
+ }
150
+ else {
176
151
  if (response.error) {
177
- reject(response);
152
+ this.promise.reject(response);
178
153
  }
179
154
  else {
180
- resolve(response);
155
+ this.promise.resolve(response);
181
156
  }
182
- });
157
+ receiver.off(Nip46Event.Receive, onReceive);
158
+ }
159
+ };
160
+ receiver.on(Nip46Event.Receive, onReceive);
161
+ };
162
+ this.send = async (sender) => {
163
+ sender.enqueue(this);
164
+ };
165
+ }
166
+ }
167
+ exports.Nip46Request = Nip46Request;
168
+ class Nip46Broker extends lib_1.Emitter {
169
+ constructor(params) {
170
+ super();
171
+ this.params = params;
172
+ // Getters for helper objects
173
+ this.makeSigner = () => new nip01_1.Nip01Signer(this.params.clientSecret);
174
+ this.makeSender = () => {
175
+ const sender = new Nip46Sender(this.signer, this.params);
176
+ sender.on(Nip46Event.Send, (data) => {
177
+ console.log('nip46 send:', data);
183
178
  });
179
+ return sender;
180
+ };
181
+ this.makeReceiver = () => {
182
+ const receiver = new Nip46Receiver(this.signer, this.params);
183
+ receiver.on(Nip46Event.Receive, (data) => {
184
+ console.log('nip46 receive:', data);
185
+ });
186
+ return receiver;
187
+ };
188
+ // Lifecycle methods
189
+ this.setParams = (params) => {
190
+ this.params = { ...this.params, ...params };
191
+ // Stop everything that's stateful
192
+ this.teardown();
193
+ // Set it back up again
194
+ this.sender = this.makeSender();
195
+ this.receiver = this.makeReceiver();
196
+ };
197
+ this.teardown = () => {
198
+ this.sender.stop();
199
+ this.receiver.stop();
184
200
  };
185
- this.enqueue = (method, params) => new Promise(resolve => {
186
- __classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
187
- __classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
188
- });
189
- this.createAccount = (username, perms = "") => {
190
- if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
191
- throw new Error("Unable to create an account without a handler domain");
201
+ // General purpose utility methods
202
+ this.enqueue = async (method, params) => {
203
+ const request = new Nip46Request(method, params);
204
+ await request.listen(this.receiver);
205
+ await request.send(this.sender);
206
+ return request;
207
+ };
208
+ this.send = async (method, params) => {
209
+ const request = await this.enqueue(method, params);
210
+ const response = await request.promise;
211
+ return response.result;
212
+ };
213
+ // Methods for initiating a connection
214
+ this.parseBunkerUrl = (url) => {
215
+ let connectSecret = "";
216
+ let signerPubkey = "";
217
+ let relays = [];
218
+ try {
219
+ const _url = new URL(url);
220
+ relays = _url.searchParams.getAll("relay") || [];
221
+ signerPubkey = _url.hostname || _url.pathname.replace(/\//g, '');
222
+ connectSecret = _url.searchParams.get("secret") || "";
192
223
  }
193
- return __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]));
224
+ catch (_a) {
225
+ // pass
226
+ }
227
+ return { signerPubkey, connectSecret, relays: relays.map(util_1.normalizeRelayUrl) };
194
228
  };
195
- this.connect = async (token = "", perms = "", secret = "") => {
196
- if (!__classPrivateFieldGet(this, _Nip46Broker_connectResponse, "f")) {
197
- const params = ["", token, perms];
198
- __classPrivateFieldSet(this, _Nip46Broker_connectResponse, await this.enqueue("connect", params), "f");
229
+ this.makeNostrconnectUrl = async (meta = {}) => {
230
+ const clientPubkey = await this.signer.getPubkey();
231
+ const secret = Math.random().toString(36).substring(7);
232
+ const params = new URLSearchParams({ ...meta, secret });
233
+ for (const relay of this.params.relays) {
234
+ params.append('relay', relay);
199
235
  }
200
- return __classPrivateFieldGet(this, _Nip46Broker_connectResponse, "f").result === 'ack';
201
- };
202
- this.getPublicKey = () => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("get_public_key", []));
203
- this.signEvent = async (event) => JSON.parse(await __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("sign_event", [JSON.stringify(event)])));
204
- this.nip04Encrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip04_encrypt", [pk, message]));
205
- this.nip04Decrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip04_decrypt", [pk, message]));
206
- this.nip44Encrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip44_encrypt", [pk, message]));
207
- this.nip44Decrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip44_decrypt", [pk, message]));
208
- this.teardown = () => {
209
- var _a;
210
- __classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
211
- (_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
236
+ return `nostrconnect://${clientPubkey}?${params.toString()}`;
212
237
  };
213
- __classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
214
- __classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip44', "f");
215
- __classPrivateFieldSet(this, _Nip46Broker_signer, new nip01_1.Nip01Signer(params.secret), "f");
238
+ this.waitForNostrconnect = (url, abort) => {
239
+ const secret = new URL(url).searchParams.get('secret');
240
+ return (0, lib_1.makePromise)((resolve, reject) => {
241
+ const onReceive = (response) => {
242
+ if (["ack", secret].includes(response.result)) {
243
+ this.setParams({ signerPubkey: response.event.pubkey });
244
+ if (response.result === 'ack') {
245
+ console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
246
+ }
247
+ resolve(response);
248
+ }
249
+ else {
250
+ reject(response);
251
+ }
252
+ cleanup();
253
+ };
254
+ const cleanup = () => {
255
+ this.receiver.off(Nip46Event.Receive, onReceive);
256
+ };
257
+ this.receiver.on(Nip46Event.Receive, onReceive);
258
+ this.receiver.start();
259
+ abort === null || abort === void 0 ? void 0 : abort.signal.addEventListener('abort', () => {
260
+ reject(undefined);
261
+ cleanup();
262
+ });
263
+ });
264
+ };
265
+ // Normal NIP 46 methods
266
+ this.ping = () => this.send("ping", []);
267
+ this.getPublicKey = () => this.send("get_public_key", []);
268
+ this.createAccount = (username, domain, perms = "") => this.send("create_account", [username, domain, "", perms]);
269
+ this.connect = async (signerPubkey, connectSecret = "", perms = "") => this.send("connect", [signerPubkey, connectSecret, perms]);
270
+ this.signEvent = async (event) => JSON.parse(await this.send("sign_event", [JSON.stringify(event)]));
271
+ this.nip04Encrypt = (pk, message) => this.send("nip04_encrypt", [pk, message]);
272
+ this.nip04Decrypt = (pk, message) => this.send("nip04_decrypt", [pk, message]);
273
+ this.nip44Encrypt = (pk, message) => this.send("nip44_encrypt", [pk, message]);
274
+ this.nip44Decrypt = (pk, message) => this.send("nip44_decrypt", [pk, message]);
275
+ this.signer = this.makeSigner();
276
+ this.sender = this.makeSender();
277
+ this.receiver = this.makeReceiver();
278
+ }
279
+ // Use a static getter to avoid duplicate connections
280
+ static get(params) {
281
+ if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
282
+ singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
283
+ singleton = new Nip46Broker(params);
284
+ }
285
+ return singleton;
216
286
  }
287
+ // Expose params without exposing params
217
288
  hasParams(params) {
218
289
  return (0, lib_1.equals)(this.params, params);
219
290
  }
220
291
  }
221
292
  exports.Nip46Broker = Nip46Broker;
222
- _Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResponse = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_window = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap(), _Nip46Broker_getResult = new WeakMap();
223
293
  class Nip46Signer {
224
294
  constructor(broker) {
225
295
  this.broker = broker;
226
- _Nip46Signer_pubkey.set(this, void 0);
227
296
  this.getPubkey = async () => {
228
- if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
229
- __classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
297
+ if (!this.pubkey) {
298
+ this.pubkey = await this.broker.getPublicKey();
230
299
  }
231
- return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
300
+ return this.pubkey;
232
301
  };
233
302
  this.sign = async (template) => this.broker.signEvent((0, util_2.hash)((0, util_2.own)(template, await this.getPubkey())));
234
303
  this.nip04 = {
@@ -242,5 +311,4 @@ class Nip46Signer {
242
311
  }
243
312
  }
244
313
  exports.Nip46Signer = Nip46Signer;
245
- _Nip46Signer_pubkey = new WeakMap();
246
314
  //# sourceMappingURL=nip46.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nip46.cjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nip46.cjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,19 @@
1
1
  import { Emitter } from "@welshman/lib";
2
2
  import { TrustedEvent, StampedEvent } from "@welshman/util";
3
+ import { Subscription } from "@welshman/net";
3
4
  import { ISigner } from '../util';
5
+ import { Nip01Signer } from './nip01';
4
6
  export type Nip46Algorithm = "nip04" | "nip44";
5
- export type Nip46Handler = {
6
- relays: string[];
7
- pubkey: string;
8
- domain?: string;
9
- };
10
- export type Nip46InitiateParams = {
11
- url: string;
12
- name: string;
13
- image: string;
14
- perms: string;
15
- relays: string[];
16
- abortController?: AbortController;
17
- };
7
+ export declare enum Nip46Event {
8
+ Send = "send",
9
+ Receive = "receive"
10
+ }
18
11
  export type Nip46BrokerParams = {
19
- secret: string;
20
- handler: Nip46Handler;
12
+ relays: string[];
13
+ clientSecret: string;
14
+ signerPubkey?: string;
21
15
  algorithm?: Nip46Algorithm;
22
16
  };
23
- export type Nip46Request = {
24
- method: string;
25
- params: string[];
26
- resolve: (result: Nip46ResponseWithResult) => void;
27
- };
28
17
  export type Nip46Response = {
29
18
  id: string;
30
19
  url: string;
@@ -44,39 +33,69 @@ export type Nip46ResponseWithError = {
44
33
  event: TrustedEvent;
45
34
  error: string;
46
35
  };
36
+ export declare class Nip46Receiver extends Emitter {
37
+ signer: ISigner;
38
+ params: Nip46BrokerParams;
39
+ sub?: Subscription;
40
+ constructor(signer: ISigner, params: Nip46BrokerParams);
41
+ start: () => Promise<void>;
42
+ stop: () => void;
43
+ }
44
+ export declare class Nip46Sender extends Emitter {
45
+ signer: ISigner;
46
+ params: Nip46BrokerParams;
47
+ processing: boolean;
48
+ queue: Nip46Request[];
49
+ constructor(signer: ISigner, params: Nip46BrokerParams);
50
+ send: (request: Nip46Request) => Promise<void>;
51
+ process: () => Promise<void>;
52
+ enqueue: (request: Nip46Request) => void;
53
+ stop: () => void;
54
+ }
55
+ export declare class Nip46Request {
56
+ readonly method: string;
57
+ readonly params: string[];
58
+ id: string;
59
+ promise: import("@welshman/lib").Deferred<Nip46ResponseWithResult, Nip46ResponseWithError>;
60
+ constructor(method: string, params: string[]);
61
+ listen: (receiver: Nip46Receiver) => Promise<void>;
62
+ send: (sender: Nip46Sender) => Promise<void>;
63
+ }
47
64
  export declare class Nip46Broker extends Emitter {
48
- #private;
49
- private params;
50
- static initiate({ url, name, image, perms, relays, abortController }: Nip46InitiateParams): {
51
- result: Promise<string | undefined>;
52
- params: URLSearchParams;
53
- nostrconnect: string;
54
- clientSecret: string;
55
- clientPubkey: string;
56
- };
57
- static parseBunkerLink(link: string): {
58
- token: string;
59
- pubkey: string;
60
- relays: string[];
61
- };
62
- static get(params: Nip46BrokerParams): Nip46Broker;
65
+ params: Nip46BrokerParams;
66
+ signer: ISigner;
67
+ sender: Nip46Sender;
68
+ receiver: Nip46Receiver;
63
69
  constructor(params: Nip46BrokerParams);
70
+ static get(params: Nip46BrokerParams): Nip46Broker;
64
71
  hasParams(params: Nip46BrokerParams): boolean;
65
- request: (method: string, params: string[]) => Promise<Nip46ResponseWithResult>;
66
- enqueue: (method: string, params: string[]) => Promise<Nip46ResponseWithResult>;
67
- createAccount: (username: string, perms?: string) => Promise<string>;
68
- connect: (token?: string, perms?: string, secret?: string) => Promise<boolean>;
72
+ makeSigner: () => Nip01Signer;
73
+ makeSender: () => Nip46Sender;
74
+ makeReceiver: () => Nip46Receiver;
75
+ setParams: (params: Partial<Nip46BrokerParams>) => void;
76
+ teardown: () => void;
77
+ enqueue: (method: string, params: string[]) => Promise<Nip46Request>;
78
+ send: (method: string, params: string[]) => Promise<string>;
79
+ parseBunkerUrl: (url: string) => {
80
+ signerPubkey: string;
81
+ connectSecret: string;
82
+ relays: string[];
83
+ };
84
+ makeNostrconnectUrl: (meta?: Record<string, string>) => Promise<string>;
85
+ waitForNostrconnect: (url: string, abort?: AbortController) => import("@welshman/lib").CustomPromise<Nip46ResponseWithResult, Nip46Response | undefined>;
86
+ ping: () => Promise<string>;
69
87
  getPublicKey: () => Promise<string>;
88
+ createAccount: (username: string, domain: string, perms?: string) => Promise<string>;
89
+ connect: (signerPubkey: string, connectSecret?: string, perms?: string) => Promise<string>;
70
90
  signEvent: (event: StampedEvent) => Promise<any>;
71
91
  nip04Encrypt: (pk: string, message: string) => Promise<string>;
72
92
  nip04Decrypt: (pk: string, message: string) => Promise<string>;
73
93
  nip44Encrypt: (pk: string, message: string) => Promise<string>;
74
94
  nip44Decrypt: (pk: string, message: string) => Promise<string>;
75
- teardown: () => void;
76
95
  }
77
96
  export declare class Nip46Signer implements ISigner {
78
- #private;
79
- private broker;
97
+ broker: Nip46Broker;
98
+ pubkey?: string;
80
99
  constructor(broker: Nip46Broker);
81
100
  getPubkey: () => Promise<string>;
82
101
  sign: (template: StampedEvent) => Promise<any>;
@@ -1,230 +1,296 @@
1
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
- if (kind === "m") throw new TypeError("Private method is not writable");
3
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
- };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResponse, _Nip46Broker_queue, _Nip46Broker_window, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Broker_getResult, _Nip46Signer_pubkey;
13
- import { Emitter, sleep, tryCatch, randomId, equals } from "@welshman/lib";
14
- import { createEvent, NOSTR_CONNECT } from "@welshman/util";
1
+ import { throttle } from 'throttle-debounce';
2
+ import { Emitter, makePromise, defer, sleep, tryCatch, randomId, equals } from "@welshman/lib";
3
+ import { createEvent, normalizeRelayUrl, NOSTR_CONNECT } from "@welshman/util";
15
4
  import { subscribe, publish, SubscriptionEvent } from "@welshman/net";
16
- import { decrypt, hash, own, makeSecret, getPubkey } from "../util.mjs";
5
+ import { decrypt, hash, own } from "../util.mjs";
17
6
  import { Nip01Signer } from "./nip01.mjs";
7
+ export var Nip46Event;
8
+ (function (Nip46Event) {
9
+ Nip46Event["Send"] = "send";
10
+ Nip46Event["Receive"] = "receive";
11
+ })(Nip46Event || (Nip46Event = {}));
18
12
  let singleton;
19
- export class Nip46Broker extends Emitter {
20
- static initiate({ url, name, image, perms, relays, abortController }) {
21
- const secret = Math.random().toString(36).substring(7);
22
- const clientSecret = makeSecret();
23
- const clientPubkey = getPubkey(clientSecret);
24
- const clientSigner = new Nip01Signer(clientSecret);
25
- const params = new URLSearchParams({ secret, url, name, image, perms });
26
- for (const relay of relays) {
27
- params.append('relay', relay);
13
+ const popupManager = (() => {
14
+ let pendingUrl = "";
15
+ let pendingSince = 0;
16
+ let currentWindow;
17
+ const openPending = throttle(1000, () => {
18
+ // If it's been a while since they asked for it, drop the request
19
+ if (Date.now() - pendingSince > 10000)
20
+ return;
21
+ // If we have an active, open window, continue to wait
22
+ if (currentWindow && !currentWindow.closed) {
23
+ setTimeout(() => openPending(), 100);
28
24
  }
29
- const nostrconnect = `nostrconnect://${clientPubkey}?${params.toString()}`;
30
- const result = new Promise(resolve => {
31
- const complete = (pubkey) => {
32
- sub.close();
33
- resolve(pubkey);
34
- };
35
- const sub = subscribe({
36
- relays,
37
- filters: [{ kinds: [NOSTR_CONNECT], "#p": [clientPubkey] }],
38
- onEvent: async ({ pubkey, content }) => {
39
- const response = await tryCatch(async () => JSON.parse(await decrypt(clientSigner, pubkey, content)));
40
- if ((response === null || response === void 0 ? void 0 : response.result) === secret) {
41
- complete(pubkey);
42
- }
43
- if ((response === null || response === void 0 ? void 0 : response.result) === 'ack') {
44
- console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
45
- complete(pubkey);
46
- }
47
- },
48
- });
49
- abortController === null || abortController === void 0 ? void 0 : abortController.signal.addEventListener('abort', () => complete());
50
- });
51
- return { result, params, nostrconnect, clientSecret, clientPubkey };
52
- }
53
- static parseBunkerLink(link) {
54
- let token = "";
55
- let pubkey = "";
56
- let relays = [];
57
- try {
58
- const url = new URL(link);
59
- pubkey = url.hostname || url.pathname.replace(/\//g, '');
60
- relays = url.searchParams.getAll("relay") || [];
61
- token = url.searchParams.get("secret") || "";
62
- }
63
- catch (_a) {
64
- // pass
65
- }
66
- return { token, pubkey, relays };
67
- }
68
- static get(params) {
69
- if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
70
- singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
71
- singleton = new Nip46Broker(params);
25
+ else {
26
+ // Attempt to open the window
27
+ const w = window.open(pendingUrl, "", "width=600,height=800,popup=yes");
28
+ // If open was successful, keep track of our window
29
+ if (w) {
30
+ currentWindow = w;
31
+ }
32
+ // In any case, this url has been handled
33
+ pendingUrl = "";
34
+ pendingSince = 0;
72
35
  }
73
- return singleton;
74
- }
75
- constructor(params) {
36
+ });
37
+ return {
38
+ open: (url) => {
39
+ pendingUrl = url;
40
+ pendingSince = Date.now();
41
+ openPending();
42
+ },
43
+ };
44
+ })();
45
+ export class Nip46Receiver extends Emitter {
46
+ constructor(signer, params) {
76
47
  super();
48
+ this.signer = signer;
77
49
  this.params = params;
78
- _Nip46Broker_signer.set(this, void 0);
79
- _Nip46Broker_handler.set(this, void 0);
80
- _Nip46Broker_algorithm.set(this, void 0);
81
- _Nip46Broker_closed.set(this, false);
82
- _Nip46Broker_processing.set(this, false);
83
- _Nip46Broker_connectResponse.set(this, void 0);
84
- _Nip46Broker_queue.set(this, []);
85
- _Nip46Broker_window.set(this, void 0);
86
- _Nip46Broker_sub.set(this, void 0);
87
- _Nip46Broker_subscribe.set(this, async () => {
88
- const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
50
+ this.start = async () => {
51
+ if (this.sub)
52
+ return;
53
+ const userPubkey = await this.signer.getPubkey();
54
+ const filters = [{ kinds: [NOSTR_CONNECT], "#p": [userPubkey] }];
55
+ this.sub = subscribe({ relays: this.params.relays, filters });
89
56
  return new Promise(resolve => {
90
- if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
91
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
92
- }
93
- __classPrivateFieldSet(this, _Nip46Broker_sub, subscribe({
94
- relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
95
- filters: [{ kinds: [NOSTR_CONNECT], "#p": [pubkey] }],
96
- }), "f");
97
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on(SubscriptionEvent.Send, resolve);
98
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on(SubscriptionEvent.Event, async (url, event) => {
99
- const json = await decrypt(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), event.pubkey, event.content);
57
+ this.sub.emitter.on(SubscriptionEvent.Send, resolve);
58
+ this.sub.emitter.on(SubscriptionEvent.Event, async (url, event) => {
59
+ const json = await decrypt(this.signer, event.pubkey, event.content);
100
60
  const response = tryCatch(() => JSON.parse(json)) || {};
101
- if (!response.id) {
102
- console.error(`Invalid nostr-connect response: ${json}`);
103
- }
104
61
  // Delay errors in case there's a zombie signer out there clogging things up
105
62
  if (response.error) {
106
63
  await sleep(3000);
107
64
  }
108
- if (response.result === "auth_url") {
109
- this.emit(`auth-${response.id}`, response);
110
- }
111
- else {
112
- this.emit(`res-${response.id}`, response);
65
+ if (response.id) {
66
+ this.emit(Nip46Event.Receive, { ...response, url, event });
113
67
  }
114
68
  });
115
- __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
116
- __classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
69
+ this.sub.emitter.on(SubscriptionEvent.Complete, () => {
70
+ this.sub = undefined;
117
71
  });
118
72
  });
119
- });
120
- _Nip46Broker_processQueue.set(this, async () => {
121
- if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
73
+ };
74
+ this.stop = () => {
75
+ var _a;
76
+ (_a = this.sub) === null || _a === void 0 ? void 0 : _a.close();
77
+ this.removeAllListeners();
78
+ };
79
+ }
80
+ }
81
+ export class Nip46Sender extends Emitter {
82
+ constructor(signer, params) {
83
+ super();
84
+ this.signer = signer;
85
+ this.params = params;
86
+ this.processing = false;
87
+ this.queue = [];
88
+ this.send = async (request) => {
89
+ const { id, method, params } = request;
90
+ const { relays, signerPubkey, algorithm = "nip44" } = this.params;
91
+ if (!signerPubkey) {
92
+ throw new Error("Unable to send nip46 request without a signer pubkey");
93
+ }
94
+ const payload = JSON.stringify({ id, method, params });
95
+ const content = await this.signer[algorithm].encrypt(signerPubkey, payload);
96
+ const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", signerPubkey]] });
97
+ const event = await this.signer.sign(template);
98
+ const pub = publish({ relays, event });
99
+ this.emit(Nip46Event.Send, { ...request, pub });
100
+ };
101
+ this.process = async () => {
102
+ if (this.processing) {
122
103
  return;
123
104
  }
124
- __classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
105
+ this.processing = true;
125
106
  try {
126
- while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
127
- const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
107
+ while (this.queue.length > 0) {
108
+ const [request] = this.queue.splice(0, 1);
128
109
  try {
129
- const response = await this.request(method, params);
130
- console.log('nip46 response:', { method, params, ...response });
131
- resolve(response);
110
+ await this.send(request);
132
111
  }
133
112
  catch (error) {
134
- console.error(`nip46 error:`, { method, params, ...error });
113
+ console.error(`nip46 error:`, error, request);
135
114
  }
136
115
  }
137
116
  }
138
117
  finally {
139
- __classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
118
+ this.processing = false;
140
119
  }
141
- });
142
- _Nip46Broker_getResult.set(this, async (promise) => {
143
- const { result } = await promise;
144
- return result;
145
- });
146
- this.request = async (method, params) => {
147
- if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
148
- throw new Error("Attempted to make a nip46 request with a closed broker");
149
- }
150
- if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
151
- await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
152
- }
153
- const id = randomId();
154
- const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
155
- const payload = JSON.stringify({ id, method, params });
156
- const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
157
- const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", recipient]] });
158
- console.log('nip46 request:', { id, method, params });
159
- publish({
160
- relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
161
- event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
162
- });
163
- this.once(`auth-${id}`, response => {
164
- if (!__classPrivateFieldGet(this, _Nip46Broker_window, "f") || __classPrivateFieldGet(this, _Nip46Broker_window, "f").closed) {
165
- const w = window.open(response.error, "", "width=600,height=800,popup=yes");
166
- if (w) {
167
- __classPrivateFieldSet(this, _Nip46Broker_window, w, "f");
168
- }
120
+ };
121
+ this.enqueue = (request) => {
122
+ this.queue.push(request);
123
+ this.process();
124
+ };
125
+ this.stop = () => {
126
+ this.removeAllListeners();
127
+ };
128
+ }
129
+ }
130
+ export class Nip46Request {
131
+ constructor(method, params) {
132
+ this.method = method;
133
+ this.params = params;
134
+ this.id = randomId();
135
+ this.promise = defer();
136
+ this.listen = async (receiver) => {
137
+ await receiver.start();
138
+ const onReceive = (response) => {
139
+ if (response.id !== this.id) {
140
+ return;
169
141
  }
170
- });
171
- return new Promise((resolve, reject) => {
172
- this.once(`res-${id}`, (response) => {
142
+ if (response.result === "auth_url") {
143
+ popupManager.open(response.error);
144
+ }
145
+ else {
173
146
  if (response.error) {
174
- reject(response);
147
+ this.promise.reject(response);
175
148
  }
176
149
  else {
177
- resolve(response);
150
+ this.promise.resolve(response);
178
151
  }
179
- });
152
+ receiver.off(Nip46Event.Receive, onReceive);
153
+ }
154
+ };
155
+ receiver.on(Nip46Event.Receive, onReceive);
156
+ };
157
+ this.send = async (sender) => {
158
+ sender.enqueue(this);
159
+ };
160
+ }
161
+ }
162
+ export class Nip46Broker extends Emitter {
163
+ constructor(params) {
164
+ super();
165
+ this.params = params;
166
+ // Getters for helper objects
167
+ this.makeSigner = () => new Nip01Signer(this.params.clientSecret);
168
+ this.makeSender = () => {
169
+ const sender = new Nip46Sender(this.signer, this.params);
170
+ sender.on(Nip46Event.Send, (data) => {
171
+ console.log('nip46 send:', data);
180
172
  });
173
+ return sender;
174
+ };
175
+ this.makeReceiver = () => {
176
+ const receiver = new Nip46Receiver(this.signer, this.params);
177
+ receiver.on(Nip46Event.Receive, (data) => {
178
+ console.log('nip46 receive:', data);
179
+ });
180
+ return receiver;
181
+ };
182
+ // Lifecycle methods
183
+ this.setParams = (params) => {
184
+ this.params = { ...this.params, ...params };
185
+ // Stop everything that's stateful
186
+ this.teardown();
187
+ // Set it back up again
188
+ this.sender = this.makeSender();
189
+ this.receiver = this.makeReceiver();
190
+ };
191
+ this.teardown = () => {
192
+ this.sender.stop();
193
+ this.receiver.stop();
181
194
  };
182
- this.enqueue = (method, params) => new Promise(resolve => {
183
- __classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
184
- __classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
185
- });
186
- this.createAccount = (username, perms = "") => {
187
- if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
188
- throw new Error("Unable to create an account without a handler domain");
195
+ // General purpose utility methods
196
+ this.enqueue = async (method, params) => {
197
+ const request = new Nip46Request(method, params);
198
+ await request.listen(this.receiver);
199
+ await request.send(this.sender);
200
+ return request;
201
+ };
202
+ this.send = async (method, params) => {
203
+ const request = await this.enqueue(method, params);
204
+ const response = await request.promise;
205
+ return response.result;
206
+ };
207
+ // Methods for initiating a connection
208
+ this.parseBunkerUrl = (url) => {
209
+ let connectSecret = "";
210
+ let signerPubkey = "";
211
+ let relays = [];
212
+ try {
213
+ const _url = new URL(url);
214
+ relays = _url.searchParams.getAll("relay") || [];
215
+ signerPubkey = _url.hostname || _url.pathname.replace(/\//g, '');
216
+ connectSecret = _url.searchParams.get("secret") || "";
189
217
  }
190
- return __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]));
218
+ catch (_a) {
219
+ // pass
220
+ }
221
+ return { signerPubkey, connectSecret, relays: relays.map(normalizeRelayUrl) };
191
222
  };
192
- this.connect = async (token = "", perms = "", secret = "") => {
193
- if (!__classPrivateFieldGet(this, _Nip46Broker_connectResponse, "f")) {
194
- const params = ["", token, perms];
195
- __classPrivateFieldSet(this, _Nip46Broker_connectResponse, await this.enqueue("connect", params), "f");
223
+ this.makeNostrconnectUrl = async (meta = {}) => {
224
+ const clientPubkey = await this.signer.getPubkey();
225
+ const secret = Math.random().toString(36).substring(7);
226
+ const params = new URLSearchParams({ ...meta, secret });
227
+ for (const relay of this.params.relays) {
228
+ params.append('relay', relay);
196
229
  }
197
- return __classPrivateFieldGet(this, _Nip46Broker_connectResponse, "f").result === 'ack';
198
- };
199
- this.getPublicKey = () => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("get_public_key", []));
200
- this.signEvent = async (event) => JSON.parse(await __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("sign_event", [JSON.stringify(event)])));
201
- this.nip04Encrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip04_encrypt", [pk, message]));
202
- this.nip04Decrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip04_decrypt", [pk, message]));
203
- this.nip44Encrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip44_encrypt", [pk, message]));
204
- this.nip44Decrypt = (pk, message) => __classPrivateFieldGet(this, _Nip46Broker_getResult, "f").call(this, this.enqueue("nip44_decrypt", [pk, message]));
205
- this.teardown = () => {
206
- var _a;
207
- __classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
208
- (_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
230
+ return `nostrconnect://${clientPubkey}?${params.toString()}`;
209
231
  };
210
- __classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
211
- __classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip44', "f");
212
- __classPrivateFieldSet(this, _Nip46Broker_signer, new Nip01Signer(params.secret), "f");
232
+ this.waitForNostrconnect = (url, abort) => {
233
+ const secret = new URL(url).searchParams.get('secret');
234
+ return makePromise((resolve, reject) => {
235
+ const onReceive = (response) => {
236
+ if (["ack", secret].includes(response.result)) {
237
+ this.setParams({ signerPubkey: response.event.pubkey });
238
+ if (response.result === 'ack') {
239
+ console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
240
+ }
241
+ resolve(response);
242
+ }
243
+ else {
244
+ reject(response);
245
+ }
246
+ cleanup();
247
+ };
248
+ const cleanup = () => {
249
+ this.receiver.off(Nip46Event.Receive, onReceive);
250
+ };
251
+ this.receiver.on(Nip46Event.Receive, onReceive);
252
+ this.receiver.start();
253
+ abort === null || abort === void 0 ? void 0 : abort.signal.addEventListener('abort', () => {
254
+ reject(undefined);
255
+ cleanup();
256
+ });
257
+ });
258
+ };
259
+ // Normal NIP 46 methods
260
+ this.ping = () => this.send("ping", []);
261
+ this.getPublicKey = () => this.send("get_public_key", []);
262
+ this.createAccount = (username, domain, perms = "") => this.send("create_account", [username, domain, "", perms]);
263
+ this.connect = async (signerPubkey, connectSecret = "", perms = "") => this.send("connect", [signerPubkey, connectSecret, perms]);
264
+ this.signEvent = async (event) => JSON.parse(await this.send("sign_event", [JSON.stringify(event)]));
265
+ this.nip04Encrypt = (pk, message) => this.send("nip04_encrypt", [pk, message]);
266
+ this.nip04Decrypt = (pk, message) => this.send("nip04_decrypt", [pk, message]);
267
+ this.nip44Encrypt = (pk, message) => this.send("nip44_encrypt", [pk, message]);
268
+ this.nip44Decrypt = (pk, message) => this.send("nip44_decrypt", [pk, message]);
269
+ this.signer = this.makeSigner();
270
+ this.sender = this.makeSender();
271
+ this.receiver = this.makeReceiver();
272
+ }
273
+ // Use a static getter to avoid duplicate connections
274
+ static get(params) {
275
+ if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
276
+ singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
277
+ singleton = new Nip46Broker(params);
278
+ }
279
+ return singleton;
213
280
  }
281
+ // Expose params without exposing params
214
282
  hasParams(params) {
215
283
  return equals(this.params, params);
216
284
  }
217
285
  }
218
- _Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResponse = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_window = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap(), _Nip46Broker_getResult = new WeakMap();
219
286
  export class Nip46Signer {
220
287
  constructor(broker) {
221
288
  this.broker = broker;
222
- _Nip46Signer_pubkey.set(this, void 0);
223
289
  this.getPubkey = async () => {
224
- if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
225
- __classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
290
+ if (!this.pubkey) {
291
+ this.pubkey = await this.broker.getPublicKey();
226
292
  }
227
- return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
293
+ return this.pubkey;
228
294
  };
229
295
  this.sign = async (template) => this.broker.signEvent(hash(own(template, await this.getPubkey())));
230
296
  this.nip04 = {
@@ -237,5 +303,4 @@ export class Nip46Signer {
237
303
  };
238
304
  }
239
305
  }
240
- _Nip46Signer_pubkey = new WeakMap();
241
306
  //# sourceMappingURL=nip46.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nip46.mjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nip46.mjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@welshman/signer",
3
- "version": "0.0.15",
3
+ "version": "0.0.16",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A nostr signer implemenation supporting several login methods.",
@@ -31,7 +31,7 @@
31
31
  "typescript": "~5.1.6"
32
32
  },
33
33
  "dependencies": {
34
- "@welshman/lib": "~0.0.27",
34
+ "@welshman/lib": "~0.0.28",
35
35
  "@welshman/net": "~0.0.39",
36
36
  "@welshman/util": "~0.0.46",
37
37
  "nostr-tools": "^2.7.2"