@welshman/signer 0.0.17 → 0.0.19

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 (49) hide show
  1. package/build/src/index.d.ts +6 -6
  2. package/build/src/index.js +7 -0
  3. package/build/src/index.js.map +1 -0
  4. package/build/src/nip59.d.ts +3 -3
  5. package/build/src/{nip59.mjs → nip59.js} +11 -9
  6. package/build/src/nip59.js.map +1 -0
  7. package/build/src/signers/nip01.d.ts +2 -2
  8. package/build/src/signers/nip01.js +22 -0
  9. package/build/src/signers/nip01.js.map +1 -0
  10. package/build/src/signers/nip07.d.ts +2 -2
  11. package/build/src/signers/nip07.js +30 -0
  12. package/build/src/signers/nip07.js.map +1 -0
  13. package/build/src/signers/nip46.d.ts +5 -11
  14. package/build/src/signers/nip46.js +317 -0
  15. package/build/src/signers/nip46.js.map +1 -0
  16. package/build/src/signers/nip55.d.ts +2 -2
  17. package/build/src/signers/nip55.js +134 -0
  18. package/build/src/signers/nip55.js.map +1 -0
  19. package/build/src/util.d.ts +4 -4
  20. package/build/src/{util.mjs → util.js} +8 -6
  21. package/build/src/util.js.map +1 -0
  22. package/build/tsconfig.tsbuildinfo +1 -0
  23. package/package.json +12 -12
  24. package/build/src/index.cjs +0 -23
  25. package/build/src/index.cjs.map +0 -1
  26. package/build/src/index.mjs +0 -7
  27. package/build/src/index.mjs.map +0 -1
  28. package/build/src/nip59.cjs +0 -76
  29. package/build/src/nip59.cjs.map +0 -1
  30. package/build/src/nip59.mjs.map +0 -1
  31. package/build/src/signers/nip01.cjs +0 -38
  32. package/build/src/signers/nip01.cjs.map +0 -1
  33. package/build/src/signers/nip01.mjs +0 -34
  34. package/build/src/signers/nip01.mjs.map +0 -1
  35. package/build/src/signers/nip07.cjs +0 -50
  36. package/build/src/signers/nip07.cjs.map +0 -1
  37. package/build/src/signers/nip07.mjs +0 -45
  38. package/build/src/signers/nip07.mjs.map +0 -1
  39. package/build/src/signers/nip46.cjs +0 -311
  40. package/build/src/signers/nip46.cjs.map +0 -1
  41. package/build/src/signers/nip46.mjs +0 -303
  42. package/build/src/signers/nip46.mjs.map +0 -1
  43. package/build/src/signers/nip55.cjs +0 -151
  44. package/build/src/signers/nip55.cjs.map +0 -1
  45. package/build/src/signers/nip55.mjs +0 -146
  46. package/build/src/signers/nip55.mjs.map +0 -1
  47. package/build/src/util.cjs +0 -42
  48. package/build/src/util.cjs.map +0 -1
  49. package/build/src/util.mjs.map +0 -1
@@ -1,303 +0,0 @@
1
- import { Emitter, throttle, makePromise, defer, sleep, tryCatch, randomId, equals } from "@welshman/lib";
2
- import { createEvent, normalizeRelayUrl, NOSTR_CONNECT } from "@welshman/util";
3
- import { subscribe, publish, SubscriptionEvent } from "@welshman/net";
4
- import { decrypt, hash, own } from "../util.mjs";
5
- import { Nip01Signer } from "./nip01.mjs";
6
- export var Nip46Event;
7
- (function (Nip46Event) {
8
- Nip46Event["Send"] = "send";
9
- Nip46Event["Receive"] = "receive";
10
- })(Nip46Event || (Nip46Event = {}));
11
- let singleton;
12
- const popupManager = (() => {
13
- let pendingUrl = "";
14
- let pendingSince = 0;
15
- let currentWindow;
16
- const openPending = throttle(1000, () => {
17
- // If it's been a while since they asked for it, drop the request
18
- if (Date.now() - pendingSince > 10000)
19
- return;
20
- // If we have an active, open window, continue to wait
21
- if (currentWindow && !currentWindow.closed) {
22
- setTimeout(() => openPending(), 100);
23
- }
24
- else {
25
- // Attempt to open the window
26
- const w = window.open(pendingUrl, "", "width=600,height=800,popup=yes");
27
- // If open was successful, keep track of our window
28
- if (w) {
29
- currentWindow = w;
30
- }
31
- // In any case, this url has been handled
32
- pendingUrl = "";
33
- pendingSince = 0;
34
- }
35
- });
36
- return {
37
- open: (url) => {
38
- pendingUrl = url;
39
- pendingSince = Date.now();
40
- openPending();
41
- },
42
- };
43
- })();
44
- export class Nip46Receiver extends Emitter {
45
- constructor(signer, params) {
46
- super();
47
- this.signer = signer;
48
- this.params = params;
49
- this.start = async () => {
50
- if (this.sub)
51
- return;
52
- const userPubkey = await this.signer.getPubkey();
53
- const filters = [{ kinds: [NOSTR_CONNECT], "#p": [userPubkey] }];
54
- this.sub = subscribe({ relays: this.params.relays, filters });
55
- return new Promise(resolve => {
56
- this.sub.emitter.on(SubscriptionEvent.Send, resolve);
57
- this.sub.emitter.on(SubscriptionEvent.Event, async (url, event) => {
58
- const json = await decrypt(this.signer, event.pubkey, event.content);
59
- const response = tryCatch(() => JSON.parse(json)) || {};
60
- // Delay errors in case there's a zombie signer out there clogging things up
61
- if (response.error) {
62
- await sleep(3000);
63
- }
64
- this.emit(Nip46Event.Receive, { ...response, url, event });
65
- });
66
- this.sub.emitter.on(SubscriptionEvent.Complete, () => {
67
- this.sub = undefined;
68
- });
69
- });
70
- };
71
- this.stop = () => {
72
- var _a;
73
- (_a = this.sub) === null || _a === void 0 ? void 0 : _a.close();
74
- this.removeAllListeners();
75
- };
76
- }
77
- }
78
- export class Nip46Sender extends Emitter {
79
- constructor(signer, params) {
80
- super();
81
- this.signer = signer;
82
- this.params = params;
83
- this.processing = false;
84
- this.queue = [];
85
- this.send = async (request) => {
86
- const { id, method, params } = request;
87
- const { relays, signerPubkey, algorithm = "nip44" } = this.params;
88
- if (!signerPubkey) {
89
- throw new Error("Unable to send nip46 request without a signer pubkey");
90
- }
91
- const payload = JSON.stringify({ id, method, params });
92
- const content = await this.signer[algorithm].encrypt(signerPubkey, payload);
93
- const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", signerPubkey]] });
94
- const event = await this.signer.sign(template);
95
- const pub = publish({ relays, event });
96
- this.emit(Nip46Event.Send, { ...request, pub });
97
- };
98
- this.process = async () => {
99
- if (this.processing) {
100
- return;
101
- }
102
- this.processing = true;
103
- try {
104
- while (this.queue.length > 0) {
105
- const [request] = this.queue.splice(0, 1);
106
- try {
107
- await this.send(request);
108
- }
109
- catch (error) {
110
- console.error(`nip46 error:`, error, request);
111
- }
112
- }
113
- }
114
- finally {
115
- this.processing = false;
116
- }
117
- };
118
- this.enqueue = (request) => {
119
- this.queue.push(request);
120
- this.process();
121
- };
122
- this.stop = () => {
123
- this.removeAllListeners();
124
- };
125
- }
126
- }
127
- export class Nip46Request {
128
- constructor(method, params) {
129
- this.method = method;
130
- this.params = params;
131
- this.id = randomId();
132
- this.promise = defer();
133
- this.listen = async (receiver) => {
134
- await receiver.start();
135
- const onReceive = (response) => {
136
- if (response.id !== this.id) {
137
- return;
138
- }
139
- if (response.result === "auth_url") {
140
- popupManager.open(response.error);
141
- }
142
- else {
143
- if (response.error) {
144
- this.promise.reject(response);
145
- }
146
- else {
147
- this.promise.resolve(response);
148
- }
149
- receiver.off(Nip46Event.Receive, onReceive);
150
- }
151
- };
152
- receiver.on(Nip46Event.Receive, onReceive);
153
- };
154
- this.send = async (sender) => {
155
- sender.enqueue(this);
156
- };
157
- }
158
- }
159
- export class Nip46Broker extends Emitter {
160
- constructor(params) {
161
- super();
162
- this.params = params;
163
- // Getters for helper objects
164
- this.makeSigner = () => new Nip01Signer(this.params.clientSecret);
165
- this.makeSender = () => {
166
- const sender = new Nip46Sender(this.signer, this.params);
167
- sender.on(Nip46Event.Send, (data) => {
168
- console.log('nip46 send:', data);
169
- });
170
- return sender;
171
- };
172
- this.makeReceiver = () => {
173
- const receiver = new Nip46Receiver(this.signer, this.params);
174
- receiver.on(Nip46Event.Receive, (data) => {
175
- console.log('nip46 receive:', data);
176
- });
177
- return receiver;
178
- };
179
- // Lifecycle methods
180
- this.setParams = (params) => {
181
- this.params = { ...this.params, ...params };
182
- // Stop everything that's stateful
183
- this.teardown();
184
- // Set it back up again
185
- this.sender = this.makeSender();
186
- this.receiver = this.makeReceiver();
187
- };
188
- this.teardown = () => {
189
- this.sender.stop();
190
- this.receiver.stop();
191
- };
192
- // General purpose utility methods
193
- this.enqueue = async (method, params) => {
194
- const request = new Nip46Request(method, params);
195
- await request.listen(this.receiver);
196
- await request.send(this.sender);
197
- return request;
198
- };
199
- this.send = async (method, params) => {
200
- const request = await this.enqueue(method, params);
201
- const response = await request.promise;
202
- return response.result;
203
- };
204
- // Methods for initiating a connection
205
- this.parseBunkerUrl = (url) => {
206
- let connectSecret = "";
207
- let signerPubkey = "";
208
- let relays = [];
209
- try {
210
- const _url = new URL(url);
211
- relays = _url.searchParams.getAll("relay") || [];
212
- signerPubkey = _url.hostname || _url.pathname.replace(/\//g, '');
213
- connectSecret = _url.searchParams.get("secret") || "";
214
- }
215
- catch (_a) {
216
- // pass
217
- }
218
- return { signerPubkey, connectSecret, relays: relays.map(normalizeRelayUrl) };
219
- };
220
- this.makeNostrconnectUrl = async (meta = {}) => {
221
- const clientPubkey = await this.signer.getPubkey();
222
- const secret = Math.random().toString(36).substring(7);
223
- const params = new URLSearchParams({ ...meta, secret });
224
- for (const relay of this.params.relays) {
225
- params.append('relay', relay);
226
- }
227
- return `nostrconnect://${clientPubkey}?${params.toString()}`;
228
- };
229
- this.waitForNostrconnect = (url, abort) => {
230
- const secret = new URL(url).searchParams.get('secret');
231
- return makePromise((resolve, reject) => {
232
- const onReceive = (response) => {
233
- if (["ack", secret].includes(response.result)) {
234
- this.setParams({ signerPubkey: response.event.pubkey });
235
- if (response.result === 'ack') {
236
- console.warn("Bunker responded to nostrconnect with 'ack', which can lead to session hijacking");
237
- }
238
- resolve(response);
239
- }
240
- else {
241
- reject(response);
242
- }
243
- cleanup();
244
- };
245
- const cleanup = () => {
246
- this.receiver.off(Nip46Event.Receive, onReceive);
247
- };
248
- this.receiver.on(Nip46Event.Receive, onReceive);
249
- this.receiver.start();
250
- abort === null || abort === void 0 ? void 0 : abort.signal.addEventListener('abort', () => {
251
- reject(undefined);
252
- cleanup();
253
- });
254
- });
255
- };
256
- // Normal NIP 46 methods
257
- this.ping = () => this.send("ping", []);
258
- this.getPublicKey = () => this.send("get_public_key", []);
259
- this.createAccount = (username, domain, perms = "") => this.send("create_account", [username, domain, "", perms]);
260
- this.connect = async (signerPubkey, connectSecret = "", perms = "") => this.send("connect", [signerPubkey, connectSecret, perms]);
261
- this.signEvent = async (event) => JSON.parse(await this.send("sign_event", [JSON.stringify(event)]));
262
- this.nip04Encrypt = (pk, message) => this.send("nip04_encrypt", [pk, message]);
263
- this.nip04Decrypt = (pk, message) => this.send("nip04_decrypt", [pk, message]);
264
- this.nip44Encrypt = (pk, message) => this.send("nip44_encrypt", [pk, message]);
265
- this.nip44Decrypt = (pk, message) => this.send("nip44_decrypt", [pk, message]);
266
- this.signer = this.makeSigner();
267
- this.sender = this.makeSender();
268
- this.receiver = this.makeReceiver();
269
- }
270
- // Use a static getter to avoid duplicate connections
271
- static get(params) {
272
- if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
273
- singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
274
- singleton = new Nip46Broker(params);
275
- }
276
- return singleton;
277
- }
278
- // Expose params without exposing params
279
- hasParams(params) {
280
- return equals(this.params, params);
281
- }
282
- }
283
- export class Nip46Signer {
284
- constructor(broker) {
285
- this.broker = broker;
286
- this.getPubkey = async () => {
287
- if (!this.pubkey) {
288
- this.pubkey = await this.broker.getPublicKey();
289
- }
290
- return this.pubkey;
291
- };
292
- this.sign = async (template) => this.broker.signEvent(hash(own(template, await this.getPubkey())));
293
- this.nip04 = {
294
- encrypt: this.broker.nip04Encrypt,
295
- decrypt: this.broker.nip04Decrypt,
296
- };
297
- this.nip44 = {
298
- encrypt: this.broker.nip44Encrypt,
299
- decrypt: this.broker.nip44Decrypt,
300
- };
301
- }
302
- }
303
- //# sourceMappingURL=nip46.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nip46.mjs","sourceRoot":"","sources":["../../../src/signers/nip46.ts"],"names":[],"mappings":"OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAC,MAAM,eAAe;OAC/F,EAAC,WAAW,EAAE,iBAAiB,EAA8B,aAAa,EAAC,MAAM,gBAAgB;OACjG,EAAC,SAAS,EAAE,OAAO,EAAgB,iBAAiB,EAAC,MAAM,eAAe;OAC1E,EAAU,OAAO,EAAE,IAAI,EAAE,GAAG,EAAC;OAC7B,EAAC,WAAW,EAAC;AAIpB,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,2BAAa,CAAA;IACb,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AA+BD,IAAI,SAAsB,CAAA;AAE1B,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;IACzB,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,YAAY,GAAG,CAAC,CAAA;IACpB,IAAI,aAAqB,CAAA;IAEzB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;QACtC,iEAAiE;QACjE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,GAAG,KAAM;YAAE,OAAM;QAE9C,sDAAsD;QACtD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC1C,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,CAAA;SACrC;aAAM;YACL,6BAA6B;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,gCAAgC,CAAC,CAAA;YAEvE,mDAAmD;YACnD,IAAI,CAAC,EAAE;gBACL,aAAa,GAAG,CAAC,CAAA;aAClB;YAED,yCAAyC;YACzC,UAAU,GAAG,EAAE,CAAA;YACf,YAAY,GAAG,CAAC,CAAA;SACjB;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,GAAG,GAAG,CAAA;YAChB,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAEzB,WAAW,EAAE,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC,CAAC,EAAE,CAAA;AAEJ,MAAM,OAAO,aAAc,SAAQ,OAAO;IAGxC,YAAmB,MAAe,EAAS,MAAyB;QAClE,KAAK,EAAE,CAAA;QADU,WAAM,GAAN,MAAM,CAAS;QAAS,WAAM,GAAN,MAAM,CAAmB;QAIpE,UAAK,GAAG,KAAK,IAAI,EAAE;YACjB,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAM;YAEpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YAChD,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAC,CAAC,CAAA;YAE9D,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAA;YAE3D,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;gBACjC,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBAErD,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAW,EAAE,KAAmB,EAAE,EAAE;oBACvF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;oBACpE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;oBAEvD,4EAA4E;oBAC5E,IAAI,QAAQ,CAAC,KAAK,EAAE;wBAClB,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;qBAClB;oBAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAC,GAAG,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAkB,CAAC,CAAA;gBAC3E,CAAC,CAAC,CAAA;gBAEF,IAAI,CAAC,GAAI,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACpD,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;gBACtB,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,SAAI,GAAG,GAAG,EAAE;;YACV,MAAA,IAAI,CAAC,GAAG,0CAAE,KAAK,EAAE,CAAA;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC3B,CAAC,CAAA;IAlCD,CAAC;CAmCF;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IAItC,YAAmB,MAAe,EAAS,MAAyB;QAClE,KAAK,EAAE,CAAA;QADU,WAAM,GAAN,MAAM,CAAS;QAAS,WAAM,GAAN,MAAM,CAAmB;QAH7D,eAAU,GAAG,KAAK,CAAA;QAClB,UAAK,GAAmB,EAAE,CAAA;QAM1B,SAAI,GAAG,KAAK,EAAE,OAAqB,EAAE,EAAE;YAC5C,MAAM,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAC,GAAG,OAAO,CAAA;YACpC,MAAM,EAAC,MAAM,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,EAAC,GAAG,IAAI,CAAC,MAAM,CAAA;YAE/D,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;aACxE;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAA;YACpD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;YAC3E,MAAM,QAAQ,GAAG,WAAW,CAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,EAAC,CAAC,CAAA;YACnF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAA;YAEpC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAC,GAAG,OAAO,EAAE,GAAG,EAAC,CAAC,CAAA;QAC/C,CAAC,CAAA;QAEM,YAAO,GAAG,KAAK,IAAI,EAAE;YAC1B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,OAAM;aACP;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YAEtB,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5B,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAEzC,IAAI;wBACF,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBACzB;oBAAC,OAAO,KAAU,EAAE;wBACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;qBAC9C;iBACF;aACF;oBAAS;gBACR,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;aACxB;QACH,CAAC,CAAA;QAED,YAAO,GAAG,CAAC,OAAqB,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC,CAAA;QAED,SAAI,GAAG,GAAG,EAAE;YACV,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC3B,CAAC,CAAA;IAhDD,CAAC;CAiDF;AAED,MAAM,OAAO,YAAY;IAIvB,YAAqB,MAAc,EAAW,MAAgB;QAAzC,WAAM,GAAN,MAAM,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAU;QAH9D,OAAE,GAAG,QAAQ,EAAE,CAAA;QACf,YAAO,GAAG,KAAK,EAAmD,CAAA;QAIlE,WAAM,GAAG,KAAK,EAAE,QAAuB,EAAE,EAAE;YACzC,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEtB,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,EAAE;gBAC5C,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;oBAC3B,OAAM;iBACP;gBAED,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,EAAE;oBAClC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAA;iBACnC;qBAAM;oBACL,IAAI,QAAQ,CAAC,KAAK,EAAE;wBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAkC,CAAC,CAAA;qBACxD;yBAAM;wBACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAmC,CAAC,CAAA;qBAC1D;oBAED,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;iBAC5C;YACH,CAAC,CAAA;YAED,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QAC5C,CAAC,CAAA;QAED,SAAI,GAAG,KAAK,EAAE,MAAmB,EAAE,EAAE;YACnC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,CAAA;IA5BgE,CAAC;CA6BnE;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IAKtC,YAAmB,MAAyB;QAC1C,KAAK,EAAE,CAAA;QADU,WAAM,GAAN,MAAM,CAAmB;QAyB5C,6BAA6B;QAE7B,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAE5D,eAAU,GAAG,GAAG,EAAE;YAChB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAExD,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAS,EAAE,EAAE;gBACvC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YAEF,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,iBAAY,GAAG,GAAG,EAAE;YAClB,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;YAE5D,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,IAAS,EAAE,EAAE;gBAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAA;YACrC,CAAC,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC,CAAA;QAED,oBAAoB;QAEpB,cAAS,GAAG,CAAC,MAAkC,EAAE,EAAE;YACjD,IAAI,CAAC,MAAM,GAAG,EAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAC,CAAA;YAEzC,kCAAkC;YAClC,IAAI,CAAC,QAAQ,EAAE,CAAA;YAEf,uBAAuB;YACvB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACrC,CAAC,CAAA;QAED,aAAQ,GAAG,GAAG,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;YAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACtB,CAAC,CAAA;QAED,kCAAkC;QAElC,YAAO,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgB,EAAE,EAAE;YACnD,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAEhD,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACnC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE/B,OAAO,OAAO,CAAA;QAChB,CAAC,CAAA;QAED,SAAI,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgB,EAAE,EAAE;YAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAA;YAEtC,OAAO,QAAQ,CAAC,MAAM,CAAA;QACxB,CAAC,CAAA;QAED,sCAAsC;QAEtC,mBAAc,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/B,IAAI,aAAa,GAAG,EAAE,CAAA;YACtB,IAAI,YAAY,GAAG,EAAE,CAAA;YACrB,IAAI,MAAM,GAAa,EAAE,CAAA;YAEzB,IAAI;gBACF,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBAEzB,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;gBAChD,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;gBAChE,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;aACtD;YAAC,WAAM;gBACN,OAAO;aACR;YAED,OAAO,EAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAC,CAAA;QAC7E,CAAC,CAAA;QAED,wBAAmB,GAAG,KAAK,EAAE,OAA+B,EAAE,EAAE,EAAE;YAChE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;YACtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAC,GAAG,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;YAErD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACtC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;aAC9B;YAED,OAAO,kBAAkB,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;QAC9D,CAAC,CAAA;QAED,wBAAmB,GAAG,CAAC,GAAW,EAAE,KAAuB,EAAE,EAAE;YAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEtD,OAAO,WAAW,CAAqD,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACzF,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,EAAE;oBAC5C,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAO,CAAC,EAAE;wBAC9C,IAAI,CAAC,SAAS,CAAC,EAAC,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,CAAA;wBAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE;4BAC7B,OAAO,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAA;yBACjG;wBAED,OAAO,CAAC,QAAmC,CAAC,CAAA;qBAC7C;yBAAM;wBACL,MAAM,CAAC,QAAQ,CAAC,CAAA;qBACjB;oBAED,OAAO,EAAE,CAAA;gBACX,CAAC,CAAA;gBAED,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBAClD,CAAC,CAAA;gBAED,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBAC/C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBAErB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;oBAC3C,MAAM,CAAC,SAAS,CAAC,CAAA;oBACjB,OAAO,EAAE,CAAA;gBACX,CAAC,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QAED,wBAAwB;QAExB,SAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QAElC,iBAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;QAEpD,kBAAa,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;QAE5D,YAAO,GAAG,KAAK,EAAE,YAAoB,EAAE,aAAa,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,CACvE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAA;QAE5D,cAAS,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CACxC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAEpE,iBAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzF,iBAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzF,iBAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAEzF,iBAAY,GAAG,CAAC,EAAU,EAAE,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QAzKvF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;IACrC,CAAC;IAED,qDAAqD;IAErD,MAAM,CAAC,GAAG,CAAC,MAAyB;QAClC,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAC,MAAM,CAAC,CAAA,EAAE;YACjC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,EAAE,CAAA;YACrB,SAAS,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;SACpC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,wCAAwC;IAExC,SAAS,CAAC,MAAyB;QACjC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;CAsJF;AAED,MAAM,OAAO,WAAW;IAGtB,YAAmB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAEtC,cAAS,GAAG,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAA;aAC/C;YAED,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC,CAAA;QAED,SAAI,GAAG,KAAK,EAAE,QAAsB,EAAE,EAAE,CACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;QAEpE,UAAK,GAAG;YACN,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SAClC,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;SAClC,CAAA;IArBwC,CAAC;CAsB3C"}
@@ -1,151 +0,0 @@
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 _Nip55Signer_instances, _Nip55Signer_lock, _Nip55Signer_plugin, _Nip55Signer_packageName, _Nip55Signer_packageNameSet, _Nip55Signer_npub, _Nip55Signer_publicKey, _Nip55Signer_initialize, _Nip55Signer_then;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.Nip55Signer = exports.getNip55 = void 0;
16
- const util_1 = require("../util.cjs");
17
- const nostr_signer_capacitor_plugin_1 = require("nostr-signer-capacitor-plugin");
18
- const nostr_tools_1 = require("nostr-tools");
19
- const getNip55 = async () => {
20
- const { apps } = await nostr_signer_capacitor_plugin_1.NostrSignerPlugin.getInstalledSignerApps();
21
- return apps;
22
- };
23
- exports.getNip55 = getNip55;
24
- class Nip55Signer {
25
- constructor(packageName) {
26
- _Nip55Signer_instances.add(this);
27
- _Nip55Signer_lock.set(this, Promise.resolve());
28
- _Nip55Signer_plugin.set(this, nostr_signer_capacitor_plugin_1.NostrSignerPlugin);
29
- _Nip55Signer_packageName.set(this, void 0);
30
- _Nip55Signer_packageNameSet.set(this, false);
31
- _Nip55Signer_npub.set(this, void 0);
32
- _Nip55Signer_publicKey.set(this, void 0);
33
- _Nip55Signer_then.set(this, async (f) => {
34
- const promise = __classPrivateFieldGet(this, _Nip55Signer_lock, "f").then(async () => {
35
- if (!__classPrivateFieldGet(this, _Nip55Signer_packageNameSet, "f")) {
36
- try {
37
- await __classPrivateFieldGet(this, _Nip55Signer_plugin, "f").setPackageName({ packageName: __classPrivateFieldGet(this, _Nip55Signer_packageName, "f") });
38
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, true, "f");
39
- }
40
- catch (error) {
41
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, false, "f");
42
- throw error;
43
- }
44
- }
45
- return f(__classPrivateFieldGet(this, _Nip55Signer_plugin, "f"));
46
- });
47
- __classPrivateFieldSet(this, _Nip55Signer_lock, promise.then(() => Promise.resolve()), "f");
48
- return promise;
49
- });
50
- this.getPubkey = async () => {
51
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
52
- if (!__classPrivateFieldGet(this, _Nip55Signer_publicKey, "f") || !__classPrivateFieldGet(this, _Nip55Signer_npub, "f")) {
53
- try {
54
- const { npub } = await signer.getPublicKey();
55
- __classPrivateFieldSet(this, _Nip55Signer_npub, npub, "f");
56
- const { data } = nostr_tools_1.nip19.decode(npub);
57
- __classPrivateFieldSet(this, _Nip55Signer_publicKey, data, "f");
58
- }
59
- catch (error) {
60
- throw new Error(`Failed to get public key`);
61
- }
62
- }
63
- return __classPrivateFieldGet(this, _Nip55Signer_publicKey, "f");
64
- });
65
- };
66
- this.sign = async (template) => {
67
- const pubkey = await this.getPubkey(); // hex-encoded public key
68
- const npub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f"); // Bech32-encoded public key
69
- const event = { sig: "", ...(0, util_1.hash)((0, util_1.own)(template, pubkey)) };
70
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
71
- const { event: signedEventJson } = await signer.signEvent({
72
- eventJson: JSON.stringify(event),
73
- eventId: event.id,
74
- npub: npub,
75
- });
76
- const signedEvent = JSON.parse(signedEventJson);
77
- return signedEvent;
78
- });
79
- };
80
- this.nip04 = {
81
- encrypt: async (recipientPubKey, message) => {
82
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
83
- if (!myNpub) {
84
- await this.getPubkey();
85
- }
86
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
87
- const { result } = await signer.nip04Encrypt({
88
- pubKey: recipientPubKey,
89
- plainText: message,
90
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
91
- });
92
- return result;
93
- });
94
- },
95
- decrypt: async (senderPubKey, message) => {
96
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
97
- if (!myNpub) {
98
- await this.getPubkey();
99
- }
100
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
101
- const { result } = await signer.nip04Decrypt({
102
- pubKey: senderPubKey,
103
- encryptedText: message,
104
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
105
- });
106
- return result;
107
- });
108
- },
109
- };
110
- this.nip44 = {
111
- encrypt: async (recipientPubKey, message) => {
112
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
113
- if (!myNpub) {
114
- await this.getPubkey();
115
- }
116
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
117
- const { result } = await signer.nip44Encrypt({
118
- pubKey: recipientPubKey,
119
- plainText: message,
120
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
121
- });
122
- return result;
123
- });
124
- },
125
- decrypt: async (senderPubKey, message) => {
126
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
127
- if (!myNpub) {
128
- await this.getPubkey();
129
- }
130
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
131
- const { result } = await signer.nip44Decrypt({
132
- pubKey: senderPubKey,
133
- encryptedText: message,
134
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
135
- });
136
- return result;
137
- });
138
- },
139
- };
140
- __classPrivateFieldSet(this, _Nip55Signer_packageName, packageName, "f");
141
- __classPrivateFieldGet(this, _Nip55Signer_instances, "m", _Nip55Signer_initialize).call(this);
142
- }
143
- }
144
- exports.Nip55Signer = Nip55Signer;
145
- _Nip55Signer_lock = new WeakMap(), _Nip55Signer_plugin = new WeakMap(), _Nip55Signer_packageName = new WeakMap(), _Nip55Signer_packageNameSet = new WeakMap(), _Nip55Signer_npub = new WeakMap(), _Nip55Signer_publicKey = new WeakMap(), _Nip55Signer_then = new WeakMap(), _Nip55Signer_instances = new WeakSet(), _Nip55Signer_initialize = async function _Nip55Signer_initialize() {
146
- if (!__classPrivateFieldGet(this, _Nip55Signer_packageNameSet, "f")) {
147
- await __classPrivateFieldGet(this, _Nip55Signer_plugin, "f").setPackageName({ packageName: __classPrivateFieldGet(this, _Nip55Signer_packageName, "f") });
148
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, true, "f");
149
- }
150
- };
151
- //# sourceMappingURL=nip55.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nip55.cjs","sourceRoot":"","sources":["../../../src/signers/nip55.ts"],"names":[],"mappings":"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"}
@@ -1,146 +0,0 @@
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 _Nip55Signer_instances, _Nip55Signer_lock, _Nip55Signer_plugin, _Nip55Signer_packageName, _Nip55Signer_packageNameSet, _Nip55Signer_npub, _Nip55Signer_publicKey, _Nip55Signer_initialize, _Nip55Signer_then;
13
- import { hash, own } from "../util.mjs";
14
- import { NostrSignerPlugin } from "nostr-signer-capacitor-plugin";
15
- import { nip19 } from "nostr-tools";
16
- export const getNip55 = async () => {
17
- const { apps } = await NostrSignerPlugin.getInstalledSignerApps();
18
- return apps;
19
- };
20
- export class Nip55Signer {
21
- constructor(packageName) {
22
- _Nip55Signer_instances.add(this);
23
- _Nip55Signer_lock.set(this, Promise.resolve());
24
- _Nip55Signer_plugin.set(this, NostrSignerPlugin);
25
- _Nip55Signer_packageName.set(this, void 0);
26
- _Nip55Signer_packageNameSet.set(this, false);
27
- _Nip55Signer_npub.set(this, void 0);
28
- _Nip55Signer_publicKey.set(this, void 0);
29
- _Nip55Signer_then.set(this, async (f) => {
30
- const promise = __classPrivateFieldGet(this, _Nip55Signer_lock, "f").then(async () => {
31
- if (!__classPrivateFieldGet(this, _Nip55Signer_packageNameSet, "f")) {
32
- try {
33
- await __classPrivateFieldGet(this, _Nip55Signer_plugin, "f").setPackageName({ packageName: __classPrivateFieldGet(this, _Nip55Signer_packageName, "f") });
34
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, true, "f");
35
- }
36
- catch (error) {
37
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, false, "f");
38
- throw error;
39
- }
40
- }
41
- return f(__classPrivateFieldGet(this, _Nip55Signer_plugin, "f"));
42
- });
43
- __classPrivateFieldSet(this, _Nip55Signer_lock, promise.then(() => Promise.resolve()), "f");
44
- return promise;
45
- });
46
- this.getPubkey = async () => {
47
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
48
- if (!__classPrivateFieldGet(this, _Nip55Signer_publicKey, "f") || !__classPrivateFieldGet(this, _Nip55Signer_npub, "f")) {
49
- try {
50
- const { npub } = await signer.getPublicKey();
51
- __classPrivateFieldSet(this, _Nip55Signer_npub, npub, "f");
52
- const { data } = nip19.decode(npub);
53
- __classPrivateFieldSet(this, _Nip55Signer_publicKey, data, "f");
54
- }
55
- catch (error) {
56
- throw new Error(`Failed to get public key`);
57
- }
58
- }
59
- return __classPrivateFieldGet(this, _Nip55Signer_publicKey, "f");
60
- });
61
- };
62
- this.sign = async (template) => {
63
- const pubkey = await this.getPubkey(); // hex-encoded public key
64
- const npub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f"); // Bech32-encoded public key
65
- const event = { sig: "", ...hash(own(template, pubkey)) };
66
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
67
- const { event: signedEventJson } = await signer.signEvent({
68
- eventJson: JSON.stringify(event),
69
- eventId: event.id,
70
- npub: npub,
71
- });
72
- const signedEvent = JSON.parse(signedEventJson);
73
- return signedEvent;
74
- });
75
- };
76
- this.nip04 = {
77
- encrypt: async (recipientPubKey, message) => {
78
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
79
- if (!myNpub) {
80
- await this.getPubkey();
81
- }
82
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
83
- const { result } = await signer.nip04Encrypt({
84
- pubKey: recipientPubKey,
85
- plainText: message,
86
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
87
- });
88
- return result;
89
- });
90
- },
91
- decrypt: async (senderPubKey, message) => {
92
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
93
- if (!myNpub) {
94
- await this.getPubkey();
95
- }
96
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
97
- const { result } = await signer.nip04Decrypt({
98
- pubKey: senderPubKey,
99
- encryptedText: message,
100
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
101
- });
102
- return result;
103
- });
104
- },
105
- };
106
- this.nip44 = {
107
- encrypt: async (recipientPubKey, message) => {
108
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
109
- if (!myNpub) {
110
- await this.getPubkey();
111
- }
112
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
113
- const { result } = await signer.nip44Encrypt({
114
- pubKey: recipientPubKey,
115
- plainText: message,
116
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
117
- });
118
- return result;
119
- });
120
- },
121
- decrypt: async (senderPubKey, message) => {
122
- const myNpub = __classPrivateFieldGet(this, _Nip55Signer_npub, "f");
123
- if (!myNpub) {
124
- await this.getPubkey();
125
- }
126
- return __classPrivateFieldGet(this, _Nip55Signer_then, "f").call(this, async (signer) => {
127
- const { result } = await signer.nip44Decrypt({
128
- pubKey: senderPubKey,
129
- encryptedText: message,
130
- npub: __classPrivateFieldGet(this, _Nip55Signer_npub, "f"),
131
- });
132
- return result;
133
- });
134
- },
135
- };
136
- __classPrivateFieldSet(this, _Nip55Signer_packageName, packageName, "f");
137
- __classPrivateFieldGet(this, _Nip55Signer_instances, "m", _Nip55Signer_initialize).call(this);
138
- }
139
- }
140
- _Nip55Signer_lock = new WeakMap(), _Nip55Signer_plugin = new WeakMap(), _Nip55Signer_packageName = new WeakMap(), _Nip55Signer_packageNameSet = new WeakMap(), _Nip55Signer_npub = new WeakMap(), _Nip55Signer_publicKey = new WeakMap(), _Nip55Signer_then = new WeakMap(), _Nip55Signer_instances = new WeakSet(), _Nip55Signer_initialize = async function _Nip55Signer_initialize() {
141
- if (!__classPrivateFieldGet(this, _Nip55Signer_packageNameSet, "f")) {
142
- await __classPrivateFieldGet(this, _Nip55Signer_plugin, "f").setPackageName({ packageName: __classPrivateFieldGet(this, _Nip55Signer_packageName, "f") });
143
- __classPrivateFieldSet(this, _Nip55Signer_packageNameSet, true, "f");
144
- }
145
- };
146
- //# sourceMappingURL=nip55.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nip55.mjs","sourceRoot":"","sources":["../../../src/signers/nip55.ts"],"names":[],"mappings":"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"}