nostr-core 0.3.0 → 0.6.0

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 (142) hide show
  1. package/dist/index.d.ts +88 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +93 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/lnurl.d.ts +161 -0
  6. package/dist/lnurl.d.ts.map +1 -0
  7. package/dist/lnurl.js +343 -0
  8. package/dist/lnurl.js.map +1 -0
  9. package/dist/nip02.d.ts +27 -0
  10. package/dist/nip02.d.ts.map +1 -0
  11. package/dist/nip02.js +55 -0
  12. package/dist/nip02.js.map +1 -0
  13. package/dist/nip05.d.ts +24 -0
  14. package/dist/nip05.d.ts.map +1 -0
  15. package/dist/nip05.js +57 -0
  16. package/dist/nip05.js.map +1 -0
  17. package/dist/nip06.d.ts +26 -0
  18. package/dist/nip06.d.ts.map +1 -0
  19. package/dist/nip06.js +49 -0
  20. package/dist/nip06.js.map +1 -0
  21. package/dist/nip07.d.ts +8 -0
  22. package/dist/nip07.d.ts.map +1 -1
  23. package/dist/nip07.js +24 -0
  24. package/dist/nip07.js.map +1 -1
  25. package/dist/nip09.d.ts +34 -0
  26. package/dist/nip09.d.ts.map +1 -0
  27. package/dist/nip09.js +66 -0
  28. package/dist/nip09.js.map +1 -0
  29. package/dist/nip10.d.ts +40 -0
  30. package/dist/nip10.d.ts.map +1 -0
  31. package/dist/nip10.js +69 -0
  32. package/dist/nip10.js.map +1 -0
  33. package/dist/nip11.d.ts +41 -0
  34. package/dist/nip11.d.ts.map +1 -0
  35. package/dist/nip11.js +38 -0
  36. package/dist/nip11.js.map +1 -0
  37. package/dist/nip13.d.ts +26 -0
  38. package/dist/nip13.d.ts.map +1 -0
  39. package/dist/nip13.js +75 -0
  40. package/dist/nip13.js.map +1 -0
  41. package/dist/nip18.d.ts +28 -0
  42. package/dist/nip18.d.ts.map +1 -0
  43. package/dist/nip18.js +66 -0
  44. package/dist/nip18.js.map +1 -0
  45. package/dist/nip21.d.ts +14 -0
  46. package/dist/nip21.d.ts.map +1 -0
  47. package/dist/nip21.js +24 -0
  48. package/dist/nip21.js.map +1 -0
  49. package/dist/nip22.d.ts +26 -0
  50. package/dist/nip22.d.ts.map +1 -0
  51. package/dist/nip22.js +109 -0
  52. package/dist/nip22.js.map +1 -0
  53. package/dist/nip23.d.ts +24 -0
  54. package/dist/nip23.d.ts.map +1 -0
  55. package/dist/nip23.js +70 -0
  56. package/dist/nip23.js.map +1 -0
  57. package/dist/nip24.d.ts +31 -0
  58. package/dist/nip24.d.ts.map +1 -0
  59. package/dist/nip24.js +75 -0
  60. package/dist/nip24.js.map +1 -0
  61. package/dist/nip25.d.ts +32 -0
  62. package/dist/nip25.d.ts.map +1 -0
  63. package/dist/nip25.js +54 -0
  64. package/dist/nip25.js.map +1 -0
  65. package/dist/nip27.d.ts +16 -0
  66. package/dist/nip27.d.ts.map +1 -0
  67. package/dist/nip27.js +44 -0
  68. package/dist/nip27.js.map +1 -0
  69. package/dist/nip28.d.ts +52 -0
  70. package/dist/nip28.d.ts.map +1 -0
  71. package/dist/nip28.js +118 -0
  72. package/dist/nip28.js.map +1 -0
  73. package/dist/nip29.d.ts +60 -0
  74. package/dist/nip29.d.ts.map +1 -0
  75. package/dist/nip29.js +122 -0
  76. package/dist/nip29.js.map +1 -0
  77. package/dist/nip30.d.ts +18 -0
  78. package/dist/nip30.d.ts.map +1 -0
  79. package/dist/nip30.js +24 -0
  80. package/dist/nip30.js.map +1 -0
  81. package/dist/nip31.d.ts +11 -0
  82. package/dist/nip31.d.ts.map +1 -0
  83. package/dist/nip31.js +15 -0
  84. package/dist/nip31.js.map +1 -0
  85. package/dist/nip36.d.ts +14 -0
  86. package/dist/nip36.d.ts.map +1 -0
  87. package/dist/nip36.js +24 -0
  88. package/dist/nip36.js.map +1 -0
  89. package/dist/nip40.d.ts +14 -0
  90. package/dist/nip40.d.ts.map +1 -0
  91. package/dist/nip40.js +26 -0
  92. package/dist/nip40.js.map +1 -0
  93. package/dist/nip42.d.ts +20 -0
  94. package/dist/nip42.d.ts.map +1 -0
  95. package/dist/nip42.js +38 -0
  96. package/dist/nip42.js.map +1 -0
  97. package/dist/nip46.d.ts +17 -4
  98. package/dist/nip46.d.ts.map +1 -1
  99. package/dist/nip46.js +78 -38
  100. package/dist/nip46.js.map +1 -1
  101. package/dist/nip48.d.ts +23 -0
  102. package/dist/nip48.d.ts.map +1 -0
  103. package/dist/nip48.js +30 -0
  104. package/dist/nip48.js.map +1 -0
  105. package/dist/nip50.d.ts +23 -0
  106. package/dist/nip50.d.ts.map +1 -0
  107. package/dist/nip50.js +47 -0
  108. package/dist/nip50.js.map +1 -0
  109. package/dist/nip51.d.ts +57 -0
  110. package/dist/nip51.d.ts.map +1 -0
  111. package/dist/nip51.js +118 -0
  112. package/dist/nip51.js.map +1 -0
  113. package/dist/nip56.d.ts +28 -0
  114. package/dist/nip56.d.ts.map +1 -0
  115. package/dist/nip56.js +60 -0
  116. package/dist/nip56.js.map +1 -0
  117. package/dist/nip57.d.ts +48 -0
  118. package/dist/nip57.d.ts.map +1 -0
  119. package/dist/nip57.js +140 -0
  120. package/dist/nip57.js.map +1 -0
  121. package/dist/nip58.d.ts +82 -0
  122. package/dist/nip58.d.ts.map +1 -0
  123. package/dist/nip58.js +195 -0
  124. package/dist/nip58.js.map +1 -0
  125. package/dist/nip59.js +1 -1
  126. package/dist/nip65.d.ts +28 -0
  127. package/dist/nip65.d.ts.map +1 -0
  128. package/dist/nip65.js +83 -0
  129. package/dist/nip65.js.map +1 -0
  130. package/dist/nip98.d.ts +24 -0
  131. package/dist/nip98.d.ts.map +1 -0
  132. package/dist/nip98.js +68 -0
  133. package/dist/nip98.js.map +1 -0
  134. package/dist/relay.d.ts +2 -0
  135. package/dist/relay.d.ts.map +1 -1
  136. package/dist/relay.js +20 -0
  137. package/dist/relay.js.map +1 -1
  138. package/dist/signer.d.ts +4 -0
  139. package/dist/signer.d.ts.map +1 -1
  140. package/dist/signer.js +11 -0
  141. package/dist/signer.js.map +1 -1
  142. package/package.json +33 -4
package/dist/nip98.js ADDED
@@ -0,0 +1,68 @@
1
+ import { sha256 } from '@noble/hashes/sha2';
2
+ import { bytesToHex } from '@noble/hashes/utils';
3
+ import { base64 } from '@scure/base';
4
+ import { finalizeEvent, verifyEvent } from './event.js';
5
+ import { utf8Encoder } from './utils.js';
6
+ /**
7
+ * Create a kind 27235 HTTP auth event template (unsigned).
8
+ */
9
+ export function createHttpAuthEventTemplate(opts) {
10
+ const tags = [
11
+ ['u', opts.url],
12
+ ['method', opts.method.toUpperCase()],
13
+ ];
14
+ if (opts.body) {
15
+ const bodyBytes = typeof opts.body === 'string' ? utf8Encoder.encode(opts.body) : opts.body;
16
+ const hash = bytesToHex(sha256(bodyBytes));
17
+ tags.push(['payload', hash]);
18
+ }
19
+ return {
20
+ kind: 27235,
21
+ tags,
22
+ content: '',
23
+ created_at: Math.floor(Date.now() / 1000),
24
+ };
25
+ }
26
+ /**
27
+ * Create and sign a kind 27235 HTTP auth event.
28
+ */
29
+ export function createHttpAuthEvent(opts, secretKey) {
30
+ return finalizeEvent(createHttpAuthEventTemplate(opts), secretKey);
31
+ }
32
+ /**
33
+ * Get the Authorization header value from a signed HTTP auth event.
34
+ * Returns "Nostr <base64>" format.
35
+ */
36
+ export function getAuthorizationHeader(event) {
37
+ const json = JSON.stringify(event);
38
+ const encoded = base64.encode(utf8Encoder.encode(json));
39
+ return `Nostr ${encoded}`;
40
+ }
41
+ /**
42
+ * Verify an HTTP auth event against expected request parameters.
43
+ */
44
+ export function verifyHttpAuthEvent(event, opts) {
45
+ if (event.kind !== 27235)
46
+ return false;
47
+ if (!verifyEvent(event))
48
+ return false;
49
+ // Check timestamp is within 60 seconds
50
+ const now = Math.floor(Date.now() / 1000);
51
+ if (Math.abs(event.created_at - now) > 60)
52
+ return false;
53
+ const urlTag = event.tags.find(t => t[0] === 'u');
54
+ const methodTag = event.tags.find(t => t[0] === 'method');
55
+ if (!urlTag || urlTag[1] !== opts.url)
56
+ return false;
57
+ if (!methodTag || methodTag[1] !== opts.method.toUpperCase())
58
+ return false;
59
+ if (opts.body) {
60
+ const bodyBytes = typeof opts.body === 'string' ? utf8Encoder.encode(opts.body) : opts.body;
61
+ const expectedHash = bytesToHex(sha256(bodyBytes));
62
+ const payloadTag = event.tags.find(t => t[0] === 'payload');
63
+ if (!payloadTag || payloadTag[1] !== expectedHash)
64
+ return false;
65
+ }
66
+ return true;
67
+ }
68
+ //# sourceMappingURL=nip98.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nip98.js","sourceRoot":"","sources":["../src/nip98.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAuC,MAAM,YAAY,CAAA;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQxC;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAqB;IAC/D,MAAM,IAAI,GAAe;QACvB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACf,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KACtC,CAAA;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QAC3F,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK;QACX,IAAI;QACJ,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;KAC1C,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAqB,EAAE,SAAqB;IAC9E,OAAO,aAAa,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAA;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAiB;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,SAAS,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAiB,EAAE,IAAqB;IAC1E,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAErC,uCAAuC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,EAAE;QAAE,OAAO,KAAK,CAAA;IAEvD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAA;IACjD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;IAEzD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IACnD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;QAAE,OAAO,KAAK,CAAA;IAE1E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;QAC3F,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;QAClD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,YAAY;YAAE,OAAO,KAAK,CAAA;IACjE,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
package/dist/relay.d.ts CHANGED
@@ -27,6 +27,7 @@ export declare class Relay {
27
27
  eoseTimeout: number;
28
28
  publishTimeout: number;
29
29
  openSubs: Map<string, Subscription>;
30
+ onauth: ((challenge: string) => void) | undefined;
30
31
  private connectionPromise;
31
32
  private openEventPublishes;
32
33
  private ws;
@@ -44,6 +45,7 @@ export declare class Relay {
44
45
  subscribe(filters: Filter[], params: SubscriptionParams & {
45
46
  id?: string;
46
47
  }): Subscription;
48
+ auth(event: NostrEvent): Promise<string>;
47
49
  close(): void;
48
50
  private closeAllSubscriptions;
49
51
  _onmessage(ev: MessageEvent): void;
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,YAAY;IACvB,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,MAAM,UAAQ;IACd,KAAK,UAAQ;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,iBAAiB,CAA2C;gBAExD,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB;IASnF,IAAI;IAKJ,YAAY;IAOZ,KAAK,CAAC,MAAM,SAAqB;CAYlC;AAED,qBAAa,KAAK;IAChB,SAAgB,GAAG,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAQ;IACnB,WAAW,SAAO;IAClB,cAAc,SAAO;IACrB,QAAQ,4BAAkC;IAEjD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,kBAAkB,CAItB;IACJ,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,UAAU,CAAkB;gBAExB,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,SAAS,CAAA;KAAE;IAK9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CzD,IAAI,CAAC,OAAO,EAAE,MAAM;IAKd,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAejD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IASxF,KAAK;IASL,OAAO,CAAC,qBAAqB;IAY7B,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;CAiDnC"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAGvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,qBAAa,YAAY;IACvB,SAAgB,KAAK,EAAE,KAAK,CAAA;IAC5B,SAAgB,EAAE,EAAE,MAAM,CAAA;IACnB,MAAM,UAAQ;IACd,KAAK,UAAQ;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IAEjB,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAA;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IAChC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEtD,OAAO,CAAC,iBAAiB,CAA2C;gBAExD,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB;IASnF,IAAI;IAKJ,YAAY;IAOZ,KAAK,CAAC,MAAM,SAAqB;CAYlC;AAED,qBAAa,KAAK;IAChB,SAAgB,GAAG,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,UAAU,CAAQ;IACnB,WAAW,SAAO;IAClB,cAAc,SAAO;IACrB,QAAQ,4BAAkC;IAC1C,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAExD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,kBAAkB,CAItB;IACJ,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,UAAU,CAAkB;gBAExB,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,OAAO,SAAS,CAAA;KAAE;IAK9E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAEK,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CzD,IAAI,CAAC,OAAO,EAAE,MAAM;IAKd,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAejD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY;IASlF,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAe9C,KAAK;IASL,OAAO,CAAC,qBAAqB;IAY7B,UAAU,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI;CAsDnC"}
package/dist/relay.js CHANGED
@@ -50,6 +50,7 @@ export class Relay {
50
50
  eoseTimeout = 4400;
51
51
  publishTimeout = 4400;
52
52
  openSubs = new Map();
53
+ onauth;
53
54
  connectionPromise;
54
55
  openEventPublishes = new Map();
55
56
  ws;
@@ -128,6 +129,20 @@ export class Relay {
128
129
  sub.fire();
129
130
  return sub;
130
131
  }
132
+ async auth(event) {
133
+ const ret = new Promise((resolve, reject) => {
134
+ const timeout = setTimeout(() => {
135
+ const ep = this.openEventPublishes.get(event.id);
136
+ if (ep) {
137
+ ep.reject(new Error('auth timed out'));
138
+ this.openEventPublishes.delete(event.id);
139
+ }
140
+ }, this.publishTimeout);
141
+ this.openEventPublishes.set(event.id, { resolve, reject, timeout });
142
+ });
143
+ this.send('["AUTH",' + JSON.stringify(event) + ']');
144
+ return ret;
145
+ }
131
146
  close() {
132
147
  this.closeAllSubscriptions('relay connection closed by us');
133
148
  this._connected = false;
@@ -195,6 +210,11 @@ export class Relay {
195
210
  so.close(data[2]);
196
211
  return;
197
212
  }
213
+ case 'AUTH': {
214
+ const challenge = data[1];
215
+ this.onauth?.(challenge);
216
+ return;
217
+ }
198
218
  case 'NOTICE': {
199
219
  return;
200
220
  }
package/dist/relay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../src/relay.ts"],"names":[],"mappings":"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"}
package/dist/signer.d.ts CHANGED
@@ -10,6 +10,10 @@ export interface Signer {
10
10
  encrypt(pubkey: string, plaintext: string): Promise<string>;
11
11
  decrypt(pubkey: string, ciphertext: string): Promise<string>;
12
12
  };
13
+ nip44?: {
14
+ encrypt(pubkey: string, plaintext: string): Promise<string>;
15
+ decrypt(pubkey: string, ciphertext: string): Promise<string>;
16
+ };
13
17
  getRelays?(): Promise<RelayMap>;
14
18
  }
15
19
  export declare function createSecretKeySigner(secretKey: Uint8Array): Signer;
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAGlF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAExE,MAAM,WAAW,MAAM;IACrB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACvD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAC7D,CAAA;IACD,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChC;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAqBnE"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAIlF,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAExE,MAAM,WAAW,MAAM;IACrB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/B,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;IACvD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAC7D,CAAA;IACD,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC3D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAC7D,CAAA;IACD,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAA;CAChC;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAgCnE"}
package/dist/signer.js CHANGED
@@ -2,6 +2,7 @@ import { bytesToHex } from '@noble/hashes/utils';
2
2
  import { schnorr } from '@noble/curves/secp256k1';
3
3
  import { finalizeEvent } from './event.js';
4
4
  import * as nip04 from './nip04.js';
5
+ import * as nip44 from './nip44.js';
5
6
  export function createSecretKeySigner(secretKey) {
6
7
  const pubkey = bytesToHex(schnorr.getPublicKey(secretKey));
7
8
  return {
@@ -19,6 +20,16 @@ export function createSecretKeySigner(secretKey) {
19
20
  return nip04.decrypt(secretKey, pubkey, ciphertext);
20
21
  },
21
22
  },
23
+ nip44: {
24
+ async encrypt(pubkey, plaintext) {
25
+ const conversationKey = nip44.getConversationKey(secretKey, pubkey);
26
+ return nip44.encrypt(plaintext, conversationKey);
27
+ },
28
+ async decrypt(pubkey, ciphertext) {
29
+ const conversationKey = nip44.getConversationKey(secretKey, pubkey);
30
+ return nip44.decrypt(ciphertext, conversationKey);
31
+ },
32
+ },
22
33
  };
23
34
  }
24
35
  //# sourceMappingURL=signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAA0C,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAcnC,MAAM,UAAU,qBAAqB,CAAC,SAAqB;IACzD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IAE1D,OAAO;QACL,KAAK,CAAC,YAAY;YAChB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,KAAoB;YAClC,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,EAAE;YACL,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAiB;gBAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAAkB;gBAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;YACrD,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AAEjD,OAAO,EAAE,aAAa,EAA0C,MAAM,YAAY,CAAA;AAClF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAkBnC,MAAM,UAAU,qBAAqB,CAAC,SAAqB;IACzD,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;IAE1D,OAAO;QACL,KAAK,CAAC,YAAY;YAChB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,SAAS,CAAC,KAAoB;YAClC,OAAO,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,EAAE;YACL,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAiB;gBAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;YACpD,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAAkB;gBAC9C,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;YACrD,CAAC;SACF;QAED,KAAK,EAAE;YACL,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAiB;gBAC7C,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBACnE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAClD,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,UAAkB;gBAC9C,MAAM,eAAe,GAAG,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;gBACnE,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAA;YACnD,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nostr-core",
3
- "version": "0.3.0",
4
- "description": "Dead-simple, vendor-neutral NWC (Nostr Wallet Connect) client",
3
+ "version": "0.6.0",
4
+ "description": "Comprehensive Nostr protocol toolkit and NWC (Nostr Wallet Connect) client",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -31,7 +31,9 @@
31
31
  "@noble/ciphers": "^1.2.0",
32
32
  "@noble/curves": "^1.8.0",
33
33
  "@noble/hashes": "^1.7.0",
34
- "@scure/base": "^1.2.0"
34
+ "@scure/base": "^1.2.0",
35
+ "@scure/bip32": "^2.0.1",
36
+ "@scure/bip39": "^2.0.1"
35
37
  },
36
38
  "devDependencies": {
37
39
  "typescript": "^5.7.0",
@@ -44,6 +46,33 @@
44
46
  "wallet-connect",
45
47
  "lightning",
46
48
  "bitcoin",
47
- "nip-47"
49
+ "nip-04",
50
+ "nip-05",
51
+ "nip-06",
52
+ "nip-07",
53
+ "nip-09",
54
+ "nip-10",
55
+ "nip-11",
56
+ "nip-17",
57
+ "nip-19",
58
+ "nip-21",
59
+ "nip-22",
60
+ "nip-23",
61
+ "nip-24",
62
+ "nip-25",
63
+ "nip-27",
64
+ "nip-29",
65
+ "nip-30",
66
+ "nip-31",
67
+ "nip-42",
68
+ "nip-44",
69
+ "nip-46",
70
+ "nip-47",
71
+ "nip-51",
72
+ "nip-57",
73
+ "nip-58",
74
+ "nip-59",
75
+ "nip-65",
76
+ "nip-98"
48
77
  ]
49
78
  }