@welshman/signer 0.0.9 → 0.0.11

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,12 +1,25 @@
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 _Nip01Signer_pubkey;
2
14
  Object.defineProperty(exports, "__esModule", { value: true });
3
15
  exports.Nip01Signer = void 0;
4
16
  const util_1 = require("../util.cjs");
5
17
  class Nip01Signer {
6
18
  constructor(secret) {
7
19
  this.secret = secret;
8
- this.getPubkey = async () => this.pubkey;
9
- this.sign = async (event) => (0, util_1.sign)((0, util_1.hash)((0, util_1.own)(event, this.pubkey)), this.secret);
20
+ _Nip01Signer_pubkey.set(this, void 0);
21
+ this.getPubkey = async () => __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f");
22
+ this.sign = async (event) => (0, util_1.sign)((0, util_1.hash)((0, util_1.own)(event, __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f"))), this.secret);
10
23
  this.nip04 = {
11
24
  encrypt: async (pubkey, message) => util_1.nip04.encrypt(pubkey, this.secret, message),
12
25
  decrypt: async (pubkey, message) => util_1.nip04.decrypt(pubkey, this.secret, message),
@@ -15,10 +28,11 @@ class Nip01Signer {
15
28
  encrypt: async (pubkey, message) => util_1.nip44.encrypt(pubkey, this.secret, message),
16
29
  decrypt: async (pubkey, message) => util_1.nip44.decrypt(pubkey, this.secret, message),
17
30
  };
18
- this.pubkey = (0, util_1.getPubkey)(this.secret);
31
+ __classPrivateFieldSet(this, _Nip01Signer_pubkey, (0, util_1.getPubkey)(this.secret), "f");
19
32
  }
20
33
  }
21
34
  exports.Nip01Signer = Nip01Signer;
35
+ _Nip01Signer_pubkey = new WeakMap();
22
36
  Nip01Signer.fromSecret = (secret) => new Nip01Signer(secret);
23
37
  Nip01Signer.ephemeral = () => new Nip01Signer((0, util_1.makeSecret)());
24
38
  //# sourceMappingURL=nip01.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nip01.cjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":";;;AACA,sCAAqF;AAErF,MAAa,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAQlC,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAA;QAEnC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,IAAA,UAAG,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,IAAI,CAAC,MAAM,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;;AALH,kCA4BC;AArBQ,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAA,iBAAU,GAAE,CAAC,AAAtC,CAAsC"}
1
+ {"version":3,"file":"nip01.cjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,sCAAqF;AAErF,MAAa,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFlC,sCAAe;QAUf,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,uBAAA,IAAI,2BAAQ,CAAA;QAEpC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,IAAA,UAAG,EAAC,KAAK,EAAE,uBAAA,IAAI,2BAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,YAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,uBAAA,IAAI,uBAAW,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,MAAA,CAAA;IACvC,CAAC;;AALH,kCA4BC;;AArBQ,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,IAAA,iBAAU,GAAE,CAAC,AAAtC,CAAsC"}
@@ -1,8 +1,8 @@
1
1
  import { StampedEvent } from '@welshman/util';
2
2
  import { ISigner } from "../util";
3
3
  export declare class Nip01Signer implements ISigner {
4
+ #private;
4
5
  private secret;
5
- private pubkey;
6
6
  constructor(secret: string);
7
7
  static fromSecret: (secret: string) => Nip01Signer;
8
8
  static ephemeral: () => Nip01Signer;
@@ -1,9 +1,22 @@
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 _Nip01Signer_pubkey;
1
13
  import { nip04, nip44, own, hash, sign, getPubkey, makeSecret } from "../util.mjs";
2
14
  export class Nip01Signer {
3
15
  constructor(secret) {
4
16
  this.secret = secret;
5
- this.getPubkey = async () => this.pubkey;
6
- this.sign = async (event) => sign(hash(own(event, this.pubkey)), this.secret);
17
+ _Nip01Signer_pubkey.set(this, void 0);
18
+ this.getPubkey = async () => __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f");
19
+ this.sign = async (event) => sign(hash(own(event, __classPrivateFieldGet(this, _Nip01Signer_pubkey, "f"))), this.secret);
7
20
  this.nip04 = {
8
21
  encrypt: async (pubkey, message) => nip04.encrypt(pubkey, this.secret, message),
9
22
  decrypt: async (pubkey, message) => nip04.decrypt(pubkey, this.secret, message),
@@ -12,9 +25,10 @@ export class Nip01Signer {
12
25
  encrypt: async (pubkey, message) => nip44.encrypt(pubkey, this.secret, message),
13
26
  decrypt: async (pubkey, message) => nip44.decrypt(pubkey, this.secret, message),
14
27
  };
15
- this.pubkey = getPubkey(this.secret);
28
+ __classPrivateFieldSet(this, _Nip01Signer_pubkey, getPubkey(this.secret), "f");
16
29
  }
17
30
  }
31
+ _Nip01Signer_pubkey = new WeakMap();
18
32
  Nip01Signer.fromSecret = (secret) => new Nip01Signer(secret);
19
33
  Nip01Signer.ephemeral = () => new Nip01Signer(makeSecret());
20
34
  //# sourceMappingURL=nip01.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"nip01.mjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":"OACO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAW,UAAU,EAAC;AAEtE,MAAM,OAAO,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAQlC,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAA;QAEnC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACtC,CAAC;;AAEM,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC,AAAtC,CAAsC"}
1
+ {"version":3,"file":"nip01.mjs","sourceRoot":"","sources":["../../../src/signers/nip01.ts"],"names":[],"mappings":";;;;;;;;;;;;OACO,EAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAW,UAAU,EAAC;AAEtE,MAAM,OAAO,WAAW;IAGtB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFlC,sCAAe;QAUf,cAAS,GAAG,KAAK,IAAI,EAAE,CAAC,uBAAA,IAAI,2BAAQ,CAAA;QAEpC,SAAI,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAA,IAAI,2BAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAEvF,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAED,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,EAAE,CACjD,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;SAC9C,CAAA;QAvBC,uBAAA,IAAI,uBAAW,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAA,CAAA;IACvC,CAAC;;;AAEM,sBAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,AAA9C,CAA8C;AAExD,qBAAS,GAAG,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC,AAAtC,CAAsC"}
@@ -10,11 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
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
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _Nip46Broker_sub, _Nip46Broker_signer, _Nip46Broker_ready, _Nip46Broker_closed, _Nip46Broker_connectResult;
13
+ var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResult, _Nip46Broker_queue, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Signer_pubkey;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.Nip46Signer = exports.Nip46Broker = void 0;
16
- const nostr_tools_1 = require("nostr-tools");
17
- const utils_1 = require("@noble/hashes/utils");
18
16
  const lib_1 = require("@welshman/lib");
19
17
  const util_1 = require("@welshman/util");
20
18
  const net_1 = require("@welshman/net");
@@ -22,69 +20,108 @@ const util_2 = require("../util.cjs");
22
20
  const nip01_1 = require("./nip01.cjs");
23
21
  let singleton;
24
22
  class Nip46Broker extends lib_1.Emitter {
25
- static get(pubkey, secret, handler, algorithm = "nip04") {
26
- if ((singleton === null || singleton === void 0 ? void 0 : singleton.pubkey) !== pubkey ||
27
- (singleton === null || singleton === void 0 ? void 0 : singleton.secret) !== secret ||
28
- !(0, lib_1.equals)(singleton === null || singleton === void 0 ? void 0 : singleton.handler, handler) ||
29
- (singleton === null || singleton === void 0 ? void 0 : singleton.algorithm) !== algorithm) {
23
+ static parseBunkerLink(link) {
24
+ let token = "";
25
+ let pubkey = "";
26
+ let relays = [];
27
+ try {
28
+ const url = new URL(link);
29
+ pubkey = url.hostname || url.pathname.replace(/\//g, '');
30
+ relays = url.searchParams.getAll("relay") || [];
31
+ token = url.searchParams.get("secret") || "";
32
+ }
33
+ catch (_a) {
34
+ // pass
35
+ }
36
+ return { token, pubkey, relays };
37
+ }
38
+ static get(params) {
39
+ if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
30
40
  singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
31
- singleton = new Nip46Broker(pubkey, secret, handler, algorithm);
41
+ singleton = new Nip46Broker(params);
32
42
  }
33
43
  return singleton;
34
44
  }
35
- constructor(pubkey, secret, handler, algorithm) {
45
+ constructor(params) {
36
46
  super();
37
- this.pubkey = pubkey;
38
- this.secret = secret;
39
- this.handler = handler;
40
- this.algorithm = algorithm;
41
- _Nip46Broker_sub.set(this, void 0);
47
+ this.params = params;
42
48
  _Nip46Broker_signer.set(this, void 0);
43
- _Nip46Broker_ready.set(this, (0, lib_1.sleep)(500));
49
+ _Nip46Broker_handler.set(this, void 0);
50
+ _Nip46Broker_algorithm.set(this, void 0);
44
51
  _Nip46Broker_closed.set(this, false);
52
+ _Nip46Broker_processing.set(this, false);
45
53
  _Nip46Broker_connectResult.set(this, void 0);
46
- this.subscribe = () => {
47
- const sub = (0, net_1.subscribe)({
48
- relays: this.handler.relays,
49
- filters: [
50
- {
51
- since: (0, lib_1.now)() - 30,
52
- kinds: [util_1.NOSTR_CONNECT],
53
- "#p": [(0, nostr_tools_1.getPublicKey)((0, utils_1.hexToBytes)(this.secret))],
54
- },
55
- ],
56
- });
57
- sub.emitter.on("event", async (url, e) => {
58
- const json = await (0, util_2.decrypt)(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
59
- const res = await (0, lib_1.tryCatch)(() => JSON.parse(json));
60
- if (!res.id) {
61
- console.error(`Invalid nostr-connect response: ${json}`);
62
- }
63
- if (res.result === "auth_url") {
64
- this.emit(`auth-${res.id}`, res);
65
- }
66
- else {
67
- this.emit(`res-${res.id}`, res);
54
+ _Nip46Broker_queue.set(this, []);
55
+ _Nip46Broker_sub.set(this, void 0);
56
+ _Nip46Broker_subscribe.set(this, async () => {
57
+ const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
58
+ return new Promise(resolve => {
59
+ if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
60
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
68
61
  }
62
+ __classPrivateFieldSet(this, _Nip46Broker_sub, (0, net_1.subscribe)({
63
+ relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
64
+ filters: [{ since: (0, lib_1.now)() - 30, kinds: [util_1.NOSTR_CONNECT], "#p": [pubkey] }],
65
+ }), "f");
66
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on('send', resolve);
67
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("event", async (url, e) => {
68
+ const json = await (0, util_2.decrypt)(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
69
+ const res = await (0, lib_1.tryCatch)(() => JSON.parse(json));
70
+ if (!res.id) {
71
+ console.error(`Invalid nostr-connect response: ${json}`);
72
+ }
73
+ console.log('nip46 response:', res);
74
+ if (res.result === "auth_url") {
75
+ this.emit(`auth-${res.id}`, res);
76
+ }
77
+ else {
78
+ this.emit(`res-${res.id}`, res);
79
+ }
80
+ });
81
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
82
+ __classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
83
+ });
69
84
  });
70
- sub.emitter.on("complete", () => {
71
- if (!__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
72
- __classPrivateFieldSet(this, _Nip46Broker_sub, this.subscribe(), "f");
85
+ });
86
+ _Nip46Broker_processQueue.set(this, async () => {
87
+ if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
88
+ return;
89
+ }
90
+ __classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
91
+ try {
92
+ while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
93
+ const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
94
+ // Throttle requests to the signer so the user isn't overwhelmed by dialogs, but time
95
+ // out and move on to other requests if they're ignored
96
+ // Note: currenlty throttle is too low to help with dialogs, but blocking prevents
97
+ // important user actions
98
+ await Promise.race([
99
+ this.request(method, params).then(resolve),
100
+ (0, lib_1.sleep)(15),
101
+ ]);
73
102
  }
74
- });
75
- return sub;
76
- };
77
- this.request = async (method, params, admin = false) => {
78
- // nsecbunker has a race condition
79
- await __classPrivateFieldGet(this, _Nip46Broker_ready, "f");
103
+ }
104
+ finally {
105
+ __classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
106
+ }
107
+ });
108
+ this.request = async (method, params) => {
109
+ if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
110
+ throw new Error("Attempted to make a nip46 request with a closed broker");
111
+ }
112
+ if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
113
+ await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
114
+ }
80
115
  const id = (0, lib_1.randomId)();
81
- const pubkey = admin ? this.handler.pubkey : this.pubkey;
116
+ const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
82
117
  const payload = JSON.stringify({ id, method, params });
83
- const crypt = this.algorithm === "nip04" ? util_2.nip04 : util_2.nip44;
84
- const content = await crypt.encrypt(pubkey, this.secret, payload);
85
- const template = (0, util_1.createEvent)(util_1.NOSTR_CONNECT, { content, tags: [["p", pubkey]] });
86
- const event = (0, nostr_tools_1.finalizeEvent)(template, this.secret);
87
- (0, net_1.publish)({ event, relays: this.handler.relays });
118
+ const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
119
+ const template = (0, util_1.createEvent)(util_1.NOSTR_CONNECT, { content, tags: [["p", recipient]] });
120
+ console.log('nip46 request:', { id, method, params });
121
+ (0, net_1.publish)({
122
+ relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
123
+ event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
124
+ });
88
125
  this.once(`auth-${id}`, res => {
89
126
  window.open(res.error, "Coracle", "width=600,height=800,popup=yes");
90
127
  });
@@ -99,50 +136,65 @@ class Nip46Broker extends lib_1.Emitter {
99
136
  });
100
137
  });
101
138
  };
139
+ this.enqueue = (method, params) => new Promise(resolve => {
140
+ __classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
141
+ __classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
142
+ });
102
143
  this.createAccount = (username, perms = "") => {
103
- if (!this.handler.domain) {
144
+ if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
104
145
  throw new Error("Unable to create an account without a handler domain");
105
146
  }
106
- return this.request("create_account", [username, this.handler.domain, "", perms], true);
147
+ return this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]);
107
148
  };
108
149
  this.connect = async (token = "", perms = "") => {
109
150
  if (!__classPrivateFieldGet(this, _Nip46Broker_connectResult, "f")) {
110
- const params = [this.pubkey, token, perms];
111
- __classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.request("connect", params), "f");
151
+ const params = ["", token, perms];
152
+ __classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.enqueue("connect", params), "f");
112
153
  }
113
154
  return __classPrivateFieldGet(this, _Nip46Broker_connectResult, "f") === "ack";
114
155
  };
156
+ this.getPublicKey = () => this.enqueue("get_public_key", []);
115
157
  this.signEvent = async (event) => {
116
- return JSON.parse(await this.request("sign_event", [JSON.stringify(event)]));
158
+ return JSON.parse(await this.enqueue("sign_event", [JSON.stringify(event)]));
117
159
  };
118
160
  this.nip04Encrypt = (pk, message) => {
119
- return this.request("nip04_encrypt", [pk, message]);
161
+ return this.enqueue("nip04_encrypt", [pk, message]);
120
162
  };
121
163
  this.nip04Decrypt = (pk, message) => {
122
- return this.request("nip04_decrypt", [pk, message]);
164
+ return this.enqueue("nip04_decrypt", [pk, message]);
123
165
  };
124
166
  this.nip44Encrypt = (pk, message) => {
125
- return this.request("nip44_encrypt", [pk, message]);
167
+ return this.enqueue("nip44_encrypt", [pk, message]);
126
168
  };
127
169
  this.nip44Decrypt = (pk, message) => {
128
- return this.request("nip44_decrypt", [pk, message]);
170
+ return this.enqueue("nip44_decrypt", [pk, message]);
129
171
  };
130
172
  this.teardown = () => {
131
173
  var _a;
132
174
  __classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
133
175
  (_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
134
176
  };
135
- __classPrivateFieldSet(this, _Nip46Broker_signer, new nip01_1.Nip01Signer(secret), "f");
136
- __classPrivateFieldSet(this, _Nip46Broker_sub, this.subscribe(), "f");
177
+ __classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
178
+ __classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip04', "f");
179
+ __classPrivateFieldSet(this, _Nip46Broker_signer, new nip01_1.Nip01Signer(params.secret), "f");
180
+ }
181
+ hasParams(params) {
182
+ return (0, lib_1.equals)(this.params, params);
137
183
  }
138
184
  }
139
185
  exports.Nip46Broker = Nip46Broker;
140
- _Nip46Broker_sub = new WeakMap(), _Nip46Broker_signer = new WeakMap(), _Nip46Broker_ready = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_connectResult = new WeakMap();
186
+ _Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResult = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap();
141
187
  class Nip46Signer {
142
188
  constructor(broker) {
143
189
  this.broker = broker;
144
- this.getPubkey = async () => this.broker.pubkey;
145
- this.sign = (template) => this.broker.signEvent((0, util_2.hash)((0, util_2.own)(template, this.broker.pubkey)));
190
+ _Nip46Signer_pubkey.set(this, void 0);
191
+ this.getPubkey = async () => {
192
+ if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
193
+ __classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
194
+ }
195
+ return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
196
+ };
197
+ this.sign = async (template) => this.broker.signEvent((0, util_2.hash)((0, util_2.own)(template, await this.getPubkey())));
146
198
  this.nip04 = {
147
199
  encrypt: this.broker.nip04Encrypt,
148
200
  decrypt: this.broker.nip04Decrypt,
@@ -154,4 +206,5 @@ class Nip46Signer {
154
206
  }
155
207
  }
156
208
  exports.Nip46Signer = Nip46Signer;
209
+ _Nip46Signer_pubkey = new WeakMap();
157
210
  //# 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,13 +1,17 @@
1
1
  import { Emitter } from "@welshman/lib";
2
2
  import { StampedEvent } from "@welshman/util";
3
- import { Subscription } from "@welshman/net";
4
3
  import { ISigner } from '../util';
5
- export type Algorithm = "nip04" | "nip44";
4
+ export type Nip46Algorithm = "nip04" | "nip44";
6
5
  export type Nip46Handler = {
7
6
  relays: string[];
8
- pubkey?: string;
7
+ pubkey: string;
9
8
  domain?: string;
10
9
  };
10
+ export type Nip46BrokerParams = {
11
+ secret: string;
12
+ handler: Nip46Handler;
13
+ algorithm?: Nip46Algorithm;
14
+ };
11
15
  export type Nip46Response = {
12
16
  id: string;
13
17
  error?: string;
@@ -15,16 +19,20 @@ export type Nip46Response = {
15
19
  };
16
20
  export declare class Nip46Broker extends Emitter {
17
21
  #private;
18
- readonly pubkey: string;
19
- readonly secret: string;
20
- readonly handler: Nip46Handler;
21
- readonly algorithm: Algorithm;
22
- static get(pubkey: string, secret: string, handler: Nip46Handler, algorithm?: Algorithm): Nip46Broker;
23
- constructor(pubkey: string, secret: string, handler: Nip46Handler, algorithm: Algorithm);
24
- subscribe: () => Subscription;
25
- request: (method: string, params: string[], admin?: boolean) => Promise<string>;
22
+ private params;
23
+ static parseBunkerLink(link: string): {
24
+ token: string;
25
+ pubkey: string;
26
+ relays: string[];
27
+ };
28
+ static get(params: Nip46BrokerParams): Nip46Broker;
29
+ constructor(params: Nip46BrokerParams);
30
+ hasParams(params: Nip46BrokerParams): boolean;
31
+ request: (method: string, params: string[]) => Promise<string>;
32
+ enqueue: (method: string, params: string[]) => Promise<string>;
26
33
  createAccount: (username: string, perms?: string) => Promise<string>;
27
34
  connect: (token?: string, perms?: string) => Promise<boolean>;
35
+ getPublicKey: () => Promise<string>;
28
36
  signEvent: (event: StampedEvent) => Promise<any>;
29
37
  nip04Encrypt: (pk: string, message: string) => Promise<string>;
30
38
  nip04Decrypt: (pk: string, message: string) => Promise<string>;
@@ -33,6 +41,7 @@ export declare class Nip46Broker extends Emitter {
33
41
  teardown: () => void;
34
42
  }
35
43
  export declare class Nip46Signer implements ISigner {
44
+ #private;
36
45
  private broker;
37
46
  constructor(broker: Nip46Broker);
38
47
  getPubkey: () => Promise<string>;
@@ -9,79 +9,116 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
9
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
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
- var _Nip46Broker_sub, _Nip46Broker_signer, _Nip46Broker_ready, _Nip46Broker_closed, _Nip46Broker_connectResult;
13
- import { finalizeEvent, getPublicKey } from "nostr-tools";
14
- import { hexToBytes } from '@noble/hashes/utils';
15
- import { Emitter, tryCatch, randomId, sleep, equals, now } from "@welshman/lib";
12
+ var _Nip46Broker_signer, _Nip46Broker_handler, _Nip46Broker_algorithm, _Nip46Broker_closed, _Nip46Broker_processing, _Nip46Broker_connectResult, _Nip46Broker_queue, _Nip46Broker_sub, _Nip46Broker_subscribe, _Nip46Broker_processQueue, _Nip46Signer_pubkey;
13
+ import { Emitter, sleep, tryCatch, randomId, equals, now } from "@welshman/lib";
16
14
  import { createEvent, NOSTR_CONNECT } from "@welshman/util";
17
15
  import { subscribe, publish } from "@welshman/net";
18
- import { nip04, nip44, decrypt, hash, own } from "../util.mjs";
16
+ import { decrypt, hash, own } from "../util.mjs";
19
17
  import { Nip01Signer } from "./nip01.mjs";
20
18
  let singleton;
21
19
  export class Nip46Broker extends Emitter {
22
- static get(pubkey, secret, handler, algorithm = "nip04") {
23
- if ((singleton === null || singleton === void 0 ? void 0 : singleton.pubkey) !== pubkey ||
24
- (singleton === null || singleton === void 0 ? void 0 : singleton.secret) !== secret ||
25
- !equals(singleton === null || singleton === void 0 ? void 0 : singleton.handler, handler) ||
26
- (singleton === null || singleton === void 0 ? void 0 : singleton.algorithm) !== algorithm) {
20
+ static parseBunkerLink(link) {
21
+ let token = "";
22
+ let pubkey = "";
23
+ let relays = [];
24
+ try {
25
+ const url = new URL(link);
26
+ pubkey = url.hostname || url.pathname.replace(/\//g, '');
27
+ relays = url.searchParams.getAll("relay") || [];
28
+ token = url.searchParams.get("secret") || "";
29
+ }
30
+ catch (_a) {
31
+ // pass
32
+ }
33
+ return { token, pubkey, relays };
34
+ }
35
+ static get(params) {
36
+ if (!(singleton === null || singleton === void 0 ? void 0 : singleton.hasParams(params))) {
27
37
  singleton === null || singleton === void 0 ? void 0 : singleton.teardown();
28
- singleton = new Nip46Broker(pubkey, secret, handler, algorithm);
38
+ singleton = new Nip46Broker(params);
29
39
  }
30
40
  return singleton;
31
41
  }
32
- constructor(pubkey, secret, handler, algorithm) {
42
+ constructor(params) {
33
43
  super();
34
- this.pubkey = pubkey;
35
- this.secret = secret;
36
- this.handler = handler;
37
- this.algorithm = algorithm;
38
- _Nip46Broker_sub.set(this, void 0);
44
+ this.params = params;
39
45
  _Nip46Broker_signer.set(this, void 0);
40
- _Nip46Broker_ready.set(this, sleep(500));
46
+ _Nip46Broker_handler.set(this, void 0);
47
+ _Nip46Broker_algorithm.set(this, void 0);
41
48
  _Nip46Broker_closed.set(this, false);
49
+ _Nip46Broker_processing.set(this, false);
42
50
  _Nip46Broker_connectResult.set(this, void 0);
43
- this.subscribe = () => {
44
- const sub = subscribe({
45
- relays: this.handler.relays,
46
- filters: [
47
- {
48
- since: now() - 30,
49
- kinds: [NOSTR_CONNECT],
50
- "#p": [getPublicKey(hexToBytes(this.secret))],
51
- },
52
- ],
53
- });
54
- sub.emitter.on("event", async (url, e) => {
55
- const json = await decrypt(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
56
- const res = await tryCatch(() => JSON.parse(json));
57
- if (!res.id) {
58
- console.error(`Invalid nostr-connect response: ${json}`);
59
- }
60
- if (res.result === "auth_url") {
61
- this.emit(`auth-${res.id}`, res);
62
- }
63
- else {
64
- this.emit(`res-${res.id}`, res);
51
+ _Nip46Broker_queue.set(this, []);
52
+ _Nip46Broker_sub.set(this, void 0);
53
+ _Nip46Broker_subscribe.set(this, async () => {
54
+ const pubkey = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").getPubkey();
55
+ return new Promise(resolve => {
56
+ if (__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
57
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").close();
65
58
  }
59
+ __classPrivateFieldSet(this, _Nip46Broker_sub, subscribe({
60
+ relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
61
+ filters: [{ since: now() - 30, kinds: [NOSTR_CONNECT], "#p": [pubkey] }],
62
+ }), "f");
63
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on('send', resolve);
64
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("event", async (url, e) => {
65
+ const json = await decrypt(__classPrivateFieldGet(this, _Nip46Broker_signer, "f"), e.pubkey, e.content);
66
+ const res = await tryCatch(() => JSON.parse(json));
67
+ if (!res.id) {
68
+ console.error(`Invalid nostr-connect response: ${json}`);
69
+ }
70
+ console.log('nip46 response:', res);
71
+ if (res.result === "auth_url") {
72
+ this.emit(`auth-${res.id}`, res);
73
+ }
74
+ else {
75
+ this.emit(`res-${res.id}`, res);
76
+ }
77
+ });
78
+ __classPrivateFieldGet(this, _Nip46Broker_sub, "f").emitter.on("complete", () => {
79
+ __classPrivateFieldSet(this, _Nip46Broker_sub, undefined, "f");
80
+ });
66
81
  });
67
- sub.emitter.on("complete", () => {
68
- if (!__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
69
- __classPrivateFieldSet(this, _Nip46Broker_sub, this.subscribe(), "f");
82
+ });
83
+ _Nip46Broker_processQueue.set(this, async () => {
84
+ if (__classPrivateFieldGet(this, _Nip46Broker_processing, "f")) {
85
+ return;
86
+ }
87
+ __classPrivateFieldSet(this, _Nip46Broker_processing, true, "f");
88
+ try {
89
+ while (__classPrivateFieldGet(this, _Nip46Broker_queue, "f").length > 0) {
90
+ const [{ method, params, resolve }] = __classPrivateFieldGet(this, _Nip46Broker_queue, "f").splice(0, 1);
91
+ // Throttle requests to the signer so the user isn't overwhelmed by dialogs, but time
92
+ // out and move on to other requests if they're ignored
93
+ // Note: currenlty throttle is too low to help with dialogs, but blocking prevents
94
+ // important user actions
95
+ await Promise.race([
96
+ this.request(method, params).then(resolve),
97
+ sleep(15),
98
+ ]);
70
99
  }
71
- });
72
- return sub;
73
- };
74
- this.request = async (method, params, admin = false) => {
75
- // nsecbunker has a race condition
76
- await __classPrivateFieldGet(this, _Nip46Broker_ready, "f");
100
+ }
101
+ finally {
102
+ __classPrivateFieldSet(this, _Nip46Broker_processing, false, "f");
103
+ }
104
+ });
105
+ this.request = async (method, params) => {
106
+ if (__classPrivateFieldGet(this, _Nip46Broker_closed, "f")) {
107
+ throw new Error("Attempted to make a nip46 request with a closed broker");
108
+ }
109
+ if (!__classPrivateFieldGet(this, _Nip46Broker_sub, "f")) {
110
+ await __classPrivateFieldGet(this, _Nip46Broker_subscribe, "f").call(this);
111
+ }
77
112
  const id = randomId();
78
- const pubkey = admin ? this.handler.pubkey : this.pubkey;
113
+ const recipient = __classPrivateFieldGet(this, _Nip46Broker_handler, "f").pubkey;
79
114
  const payload = JSON.stringify({ id, method, params });
80
- const crypt = this.algorithm === "nip04" ? nip04 : nip44;
81
- const content = await crypt.encrypt(pubkey, this.secret, payload);
82
- const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", pubkey]] });
83
- const event = finalizeEvent(template, this.secret);
84
- publish({ event, relays: this.handler.relays });
115
+ const content = await __classPrivateFieldGet(this, _Nip46Broker_signer, "f")[__classPrivateFieldGet(this, _Nip46Broker_algorithm, "f")].encrypt(recipient, payload);
116
+ const template = createEvent(NOSTR_CONNECT, { content, tags: [["p", recipient]] });
117
+ console.log('nip46 request:', { id, method, params });
118
+ publish({
119
+ relays: __classPrivateFieldGet(this, _Nip46Broker_handler, "f").relays,
120
+ event: await __classPrivateFieldGet(this, _Nip46Broker_signer, "f").sign(template),
121
+ });
85
122
  this.once(`auth-${id}`, res => {
86
123
  window.open(res.error, "Coracle", "width=600,height=800,popup=yes");
87
124
  });
@@ -96,49 +133,64 @@ export class Nip46Broker extends Emitter {
96
133
  });
97
134
  });
98
135
  };
136
+ this.enqueue = (method, params) => new Promise(resolve => {
137
+ __classPrivateFieldGet(this, _Nip46Broker_queue, "f").push({ method, params, resolve });
138
+ __classPrivateFieldGet(this, _Nip46Broker_processQueue, "f").call(this);
139
+ });
99
140
  this.createAccount = (username, perms = "") => {
100
- if (!this.handler.domain) {
141
+ if (!__classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain) {
101
142
  throw new Error("Unable to create an account without a handler domain");
102
143
  }
103
- return this.request("create_account", [username, this.handler.domain, "", perms], true);
144
+ return this.enqueue("create_account", [username, __classPrivateFieldGet(this, _Nip46Broker_handler, "f").domain, "", perms]);
104
145
  };
105
146
  this.connect = async (token = "", perms = "") => {
106
147
  if (!__classPrivateFieldGet(this, _Nip46Broker_connectResult, "f")) {
107
- const params = [this.pubkey, token, perms];
108
- __classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.request("connect", params), "f");
148
+ const params = ["", token, perms];
149
+ __classPrivateFieldSet(this, _Nip46Broker_connectResult, await this.enqueue("connect", params), "f");
109
150
  }
110
151
  return __classPrivateFieldGet(this, _Nip46Broker_connectResult, "f") === "ack";
111
152
  };
153
+ this.getPublicKey = () => this.enqueue("get_public_key", []);
112
154
  this.signEvent = async (event) => {
113
- return JSON.parse(await this.request("sign_event", [JSON.stringify(event)]));
155
+ return JSON.parse(await this.enqueue("sign_event", [JSON.stringify(event)]));
114
156
  };
115
157
  this.nip04Encrypt = (pk, message) => {
116
- return this.request("nip04_encrypt", [pk, message]);
158
+ return this.enqueue("nip04_encrypt", [pk, message]);
117
159
  };
118
160
  this.nip04Decrypt = (pk, message) => {
119
- return this.request("nip04_decrypt", [pk, message]);
161
+ return this.enqueue("nip04_decrypt", [pk, message]);
120
162
  };
121
163
  this.nip44Encrypt = (pk, message) => {
122
- return this.request("nip44_encrypt", [pk, message]);
164
+ return this.enqueue("nip44_encrypt", [pk, message]);
123
165
  };
124
166
  this.nip44Decrypt = (pk, message) => {
125
- return this.request("nip44_decrypt", [pk, message]);
167
+ return this.enqueue("nip44_decrypt", [pk, message]);
126
168
  };
127
169
  this.teardown = () => {
128
170
  var _a;
129
171
  __classPrivateFieldSet(this, _Nip46Broker_closed, true, "f");
130
172
  (_a = __classPrivateFieldGet(this, _Nip46Broker_sub, "f")) === null || _a === void 0 ? void 0 : _a.close();
131
173
  };
132
- __classPrivateFieldSet(this, _Nip46Broker_signer, new Nip01Signer(secret), "f");
133
- __classPrivateFieldSet(this, _Nip46Broker_sub, this.subscribe(), "f");
174
+ __classPrivateFieldSet(this, _Nip46Broker_handler, params.handler, "f");
175
+ __classPrivateFieldSet(this, _Nip46Broker_algorithm, params.algorithm || 'nip04', "f");
176
+ __classPrivateFieldSet(this, _Nip46Broker_signer, new Nip01Signer(params.secret), "f");
177
+ }
178
+ hasParams(params) {
179
+ return equals(this.params, params);
134
180
  }
135
181
  }
136
- _Nip46Broker_sub = new WeakMap(), _Nip46Broker_signer = new WeakMap(), _Nip46Broker_ready = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_connectResult = new WeakMap();
182
+ _Nip46Broker_signer = new WeakMap(), _Nip46Broker_handler = new WeakMap(), _Nip46Broker_algorithm = new WeakMap(), _Nip46Broker_closed = new WeakMap(), _Nip46Broker_processing = new WeakMap(), _Nip46Broker_connectResult = new WeakMap(), _Nip46Broker_queue = new WeakMap(), _Nip46Broker_sub = new WeakMap(), _Nip46Broker_subscribe = new WeakMap(), _Nip46Broker_processQueue = new WeakMap();
137
183
  export class Nip46Signer {
138
184
  constructor(broker) {
139
185
  this.broker = broker;
140
- this.getPubkey = async () => this.broker.pubkey;
141
- this.sign = (template) => this.broker.signEvent(hash(own(template, this.broker.pubkey)));
186
+ _Nip46Signer_pubkey.set(this, void 0);
187
+ this.getPubkey = async () => {
188
+ if (!__classPrivateFieldGet(this, _Nip46Signer_pubkey, "f")) {
189
+ __classPrivateFieldSet(this, _Nip46Signer_pubkey, await this.broker.getPublicKey(), "f");
190
+ }
191
+ return __classPrivateFieldGet(this, _Nip46Signer_pubkey, "f");
192
+ };
193
+ this.sign = async (template) => this.broker.signEvent(hash(own(template, await this.getPubkey())));
142
194
  this.nip04 = {
143
195
  encrypt: this.broker.nip04Encrypt,
144
196
  decrypt: this.broker.nip04Decrypt,
@@ -149,4 +201,5 @@ export class Nip46Signer {
149
201
  };
150
202
  }
151
203
  }
204
+ _Nip46Signer_pubkey = new WeakMap();
152
205
  //# 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.9",
3
+ "version": "0.0.11",
4
4
  "author": "hodlbod",
5
5
  "license": "MIT",
6
6
  "description": "A nostr signer implemenation supporting several login methods.",
@@ -31,9 +31,9 @@
31
31
  "typescript": "~5.1.6"
32
32
  },
33
33
  "dependencies": {
34
- "@welshman/lib": "~0.0.22",
35
- "@welshman/net": "~0.0.28",
36
- "@welshman/util": "~0.0.37",
34
+ "@welshman/lib": "~0.0.23",
35
+ "@welshman/net": "~0.0.30",
36
+ "@welshman/util": "~0.0.42",
37
37
  "nostr-tools": "^2.7.2"
38
38
  },
39
39
  "peerDependencies": {