@contextvm/sdk 0.1.14 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,3 @@
1
1
  export * from './simple-relay-pool.js';
2
+ export * from './nostrify-relay-pool.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './simple-relay-pool.js';
2
+ export * from './nostrify-relay-pool.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/relay/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { NostrEvent, Filter } from 'nostr-tools';
2
+ import { RelayHandler } from '../core/interfaces.js';
3
+ /**
4
+ * A RelayHandler implementation that uses the nostrify library's NPool to manage connections and subscriptions.
5
+ */
6
+ export declare class NostrifyRelayPool implements RelayHandler {
7
+ private readonly pool;
8
+ private readonly relayUrls;
9
+ private subscriptions;
10
+ /**
11
+ * Creates a new NostrifyRelayPool instance.
12
+ * @param relayUrls - An array of relay URLs to connect to.
13
+ */
14
+ constructor(relayUrls: string[]);
15
+ connect(): Promise<void>;
16
+ disconnect(): Promise<void>;
17
+ publish(event: NostrEvent): Promise<void>;
18
+ /**
19
+ * Creates a simplified subscription wrapper around the NPool's req method.
20
+ * This provides a cleaner interface similar to SimplePool's subscribeMany.
21
+ */
22
+ private createSubscription;
23
+ subscribe(filters: Filter[], onEvent: (event: NostrEvent) => void, onEose?: () => void): Promise<void>;
24
+ unsubscribe(): void;
25
+ }
26
+ //# sourceMappingURL=nostrify-relay-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostrify-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/nostrify-relay-pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAGrC,OAAO,CAAC,aAAa,CAKb;IAER;;;OAGG;gBACS,SAAS,EAAE,MAAM,EAAE;IAkBzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4CpB,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC;IAehB,WAAW,IAAI,IAAI;CAUpB"}
@@ -0,0 +1,124 @@
1
+ import { NPool, NRelay1 } from '@nostrify/nostrify';
2
+ import { createLogger } from '../core/utils/logger.js';
3
+ const logger = createLogger('nostrify-relay');
4
+ /**
5
+ * A RelayHandler implementation that uses the nostrify library's NPool to manage connections and subscriptions.
6
+ */
7
+ export class NostrifyRelayPool {
8
+ /**
9
+ * Creates a new NostrifyRelayPool instance.
10
+ * @param relayUrls - An array of relay URLs to connect to.
11
+ */
12
+ constructor(relayUrls) {
13
+ // Subscription management similar to SimpleRelayPool
14
+ this.subscriptions = [];
15
+ this.relayUrls = relayUrls;
16
+ this.pool = new NPool({
17
+ open: (url) => new NRelay1(url),
18
+ reqRouter: (filters) => {
19
+ const relayMap = new Map();
20
+ relayUrls.forEach((url) => {
21
+ relayMap.set(url, filters);
22
+ });
23
+ return relayMap;
24
+ },
25
+ eventRouter: () => {
26
+ return relayUrls;
27
+ },
28
+ });
29
+ }
30
+ async connect() {
31
+ logger.info('Connecting to relays', { relayUrls: this.relayUrls });
32
+ // The NPool automatically connects to relays when needed
33
+ // We don't need to explicitly connect here, but we could validate the relay URLs
34
+ for (const url of this.relayUrls) {
35
+ try {
36
+ // Validate URL format
37
+ new URL(url);
38
+ }
39
+ catch (error) {
40
+ logger.error('Invalid relay URL', { url, error });
41
+ throw new Error(`Invalid relay URL: ${url}`);
42
+ }
43
+ }
44
+ logger.info('Relay pool initialized', { relayUrls: this.relayUrls });
45
+ }
46
+ async disconnect() {
47
+ this.pool.close();
48
+ }
49
+ async publish(event) {
50
+ logger.debug('Publishing event', { eventId: event.id, kind: event.kind });
51
+ try {
52
+ await this.pool.event(event);
53
+ logger.debug('Event published successfully', { eventId: event.id });
54
+ }
55
+ catch (error) {
56
+ logger.error('Failed to publish event', { eventId: event.id, error });
57
+ throw error;
58
+ }
59
+ }
60
+ /**
61
+ * Creates a simplified subscription wrapper around the NPool's req method.
62
+ * This provides a cleaner interface similar to SimplePool's subscribeMany.
63
+ */
64
+ createSubscription(filters, onEvent, onEose) {
65
+ const abortController = new AbortController();
66
+ // Start the subscription in the background
67
+ (async () => {
68
+ try {
69
+ const messageStream = this.pool.req(filters, {
70
+ signal: abortController.signal,
71
+ });
72
+ let eoseReceived = false;
73
+ for await (const message of messageStream) {
74
+ if (abortController.signal.aborted)
75
+ break;
76
+ if (message[0] === 'EVENT') {
77
+ const event = message[2];
78
+ onEvent(event);
79
+ }
80
+ else if (message[0] === 'EOSE' && !eoseReceived && onEose) {
81
+ eoseReceived = true;
82
+ onEose();
83
+ }
84
+ else if (message[0] === 'CLOSED') {
85
+ // Subscription was closed by the relay
86
+ break;
87
+ }
88
+ }
89
+ }
90
+ catch (error) {
91
+ if (error instanceof Error && error.name === 'AbortError') {
92
+ logger.debug('Subscription aborted');
93
+ }
94
+ else {
95
+ logger.error('Subscription error', { error });
96
+ }
97
+ }
98
+ })();
99
+ return {
100
+ close: () => abortController.abort(),
101
+ };
102
+ }
103
+ async subscribe(filters, onEvent, onEose) {
104
+ logger.debug('Creating subscription', { filters });
105
+ // Create a subscription using our simplified wrapper
106
+ const closer = this.createSubscription(filters, onEvent, onEose);
107
+ // Store the subscription for cleanup
108
+ this.subscriptions.push({
109
+ filters,
110
+ onEvent,
111
+ onEose,
112
+ closer,
113
+ });
114
+ }
115
+ unsubscribe() {
116
+ logger.debug('Unsubscribing from all subscriptions');
117
+ // Close all active subscriptions
118
+ for (const subscription of this.subscriptions) {
119
+ subscription.closer.close();
120
+ }
121
+ this.subscriptions = [];
122
+ }
123
+ }
124
+ //# sourceMappingURL=nostrify-relay-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nostrify-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/nostrify-relay-pool.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,11 @@ import { RelayHandler } from '../core/interfaces.js';
8
8
  */
9
9
  export declare class SimpleRelayPool implements RelayHandler {
10
10
  private readonly relayUrls;
11
+ private readonly normalizedRelayUrls;
11
12
  private pool;
12
- private reconnectIntervals;
13
13
  private reconnectTimer?;
14
+ private readonly maxRetries;
15
+ private relayStates;
14
16
  private subscriptions;
15
17
  constructor(relayUrls: string[]);
16
18
  /**
@@ -21,7 +23,7 @@ export declare class SimpleRelayPool implements RelayHandler {
21
23
  connect(): Promise<void>;
22
24
  /**
23
25
  * Handles a disconnected relay with exponential backoff strategy.
24
- * @param url - The relay URL to reconnect to
26
+ * @param normalizedUrl - The normalized relay URL to reconnect to
25
27
  */
26
28
  private handleDisconnectedRelay;
27
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"simple-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,aAAa,CAKb;gBAEI,SAAS,EAAE,MAAM,EAAE;IAM/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkBpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;;OAGG;YACW,uBAAuB;IAmBrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAUhB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/C,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC;IAQhB,WAAW,IAAI,IAAI;CAIpB"}
1
+ {"version":3,"file":"simple-relay-pool.d.ts","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAMrD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAW;IAC/C,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,cAAc,CAAC,CAAgC;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAGhC,OAAO,CAAC,WAAW,CAOf;IAEJ,OAAO,CAAC,aAAa,CAKb;gBAEI,SAAS,EAAE,MAAM,EAAE;IAgB/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkBpB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;;OAGG;YACW,uBAAuB;IAmDrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAchB,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC/C,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,SAAS,CACb,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,IAAI,CAAC;IAQhB,WAAW,IAAI,IAAI;CAIpB"}
@@ -10,9 +10,21 @@ const logger = createLogger('relay');
10
10
  */
11
11
  export class SimpleRelayPool {
12
12
  constructor(relayUrls) {
13
- this.reconnectIntervals = new Map();
13
+ this.maxRetries = 5;
14
+ // Use Map for more efficient relay state management
15
+ this.relayStates = new Map();
14
16
  this.subscriptions = [];
15
17
  this.relayUrls = relayUrls;
18
+ // Normalize URLs once during construction
19
+ this.normalizedRelayUrls = relayUrls.map((url) => new URL(url).href);
20
+ // Initialize relay states
21
+ this.normalizedRelayUrls.forEach((url) => {
22
+ this.relayStates.set(url, {
23
+ reconnectInterval: 1000,
24
+ retryCount: 0,
25
+ isReconnecting: false,
26
+ });
27
+ });
16
28
  this.pool = new SimplePool();
17
29
  this.startReconnectLoop();
18
30
  }
@@ -27,9 +39,9 @@ export class SimpleRelayPool {
27
39
  }
28
40
  // Check all relays every 5 seconds
29
41
  this.reconnectTimer = setTimeout(() => {
30
- this.relayUrls.forEach((url) => {
31
- const normalizedUrl = new URL(url).href;
32
- if (!this.pool.listConnectionStatus().get(normalizedUrl)) {
42
+ const connectionStatus = this.pool.listConnectionStatus();
43
+ this.relayStates.forEach((state, url) => {
44
+ if (!connectionStatus.get(url)) {
33
45
  this.handleDisconnectedRelay(url);
34
46
  }
35
47
  });
@@ -38,33 +50,56 @@ export class SimpleRelayPool {
38
50
  }
39
51
  async connect() {
40
52
  // Connect to all relays with exponential backoff tracking
41
- await Promise.all(this.relayUrls.map(async (url) => {
42
- const normalizedUrl = new URL(url).href;
43
- if (!this.pool.listConnectionStatus().get(normalizedUrl)) {
53
+ const connectionStatus = this.pool.listConnectionStatus();
54
+ await Promise.all(this.normalizedRelayUrls.map(async (url) => {
55
+ if (!connectionStatus.get(url)) {
44
56
  await this.handleDisconnectedRelay(url);
45
57
  }
46
58
  }));
47
59
  }
48
60
  /**
49
61
  * Handles a disconnected relay with exponential backoff strategy.
50
- * @param url - The relay URL to reconnect to
62
+ * @param normalizedUrl - The normalized relay URL to reconnect to
51
63
  */
52
- async handleDisconnectedRelay(url) {
53
- const normalizedUrl = new URL(url).href;
54
- const currentInterval = this.reconnectIntervals.get(normalizedUrl) || 1000;
64
+ async handleDisconnectedRelay(normalizedUrl) {
65
+ // Get the relay state
66
+ const relayState = this.relayStates.get(normalizedUrl);
67
+ if (!relayState)
68
+ return;
69
+ // Skip if already reconnecting to this relay
70
+ if (relayState.isReconnecting) {
71
+ return;
72
+ }
73
+ // Check if we've exceeded the maximum retry count
74
+ if (relayState.retryCount >= this.maxRetries) {
75
+ logger.warn(`Maximum reconnection attempts (${this.maxRetries}) reached for relay ${normalizedUrl}. Giving up.`);
76
+ return;
77
+ }
78
+ const currentInterval = relayState.reconnectInterval;
79
+ // Check if we should wait before attempting to reconnect
80
+ if (currentInterval > 1000) {
81
+ await sleep(currentInterval);
82
+ }
83
+ // Mark as reconnecting and increment retry count
84
+ relayState.isReconnecting = true;
85
+ relayState.retryCount++;
55
86
  this.pool['relays'].delete(normalizedUrl);
56
87
  try {
57
- await this.pool.ensureRelay(url, { connectionTimeout: 5000 });
58
- // Reset backoff interval on successful connection
59
- this.reconnectIntervals.delete(normalizedUrl);
88
+ await this.pool.ensureRelay(normalizedUrl, { connectionTimeout: 5000 });
89
+ // Reset backoff interval and retry count on successful connection
90
+ relayState.reconnectInterval = 1000;
91
+ relayState.retryCount = 0;
60
92
  // Resubscribe to all active subscriptions after successful reconnection
61
93
  this.resubscribeAll();
62
94
  }
63
95
  catch (error) {
64
- logger.error("Can't connect to relay", error);
96
+ logger.error(`Can't connect to relay ${normalizedUrl} (attempt ${relayState.retryCount}/${this.maxRetries})`, error);
65
97
  // Double the interval for next attempt (exponential backoff), capped at 30 seconds
66
- const nextInterval = Math.min(currentInterval * 2, 30000);
67
- this.reconnectIntervals.set(normalizedUrl, nextInterval);
98
+ relayState.reconnectInterval = Math.min(currentInterval * 2, 30000);
99
+ }
100
+ finally {
101
+ // Remove from reconnecting set
102
+ relayState.isReconnecting = false;
68
103
  }
69
104
  }
70
105
  /**
@@ -74,7 +109,7 @@ export class SimpleRelayPool {
74
109
  this.subscriptions.forEach((sub) => {
75
110
  if (sub.closer)
76
111
  sub.closer.close();
77
- sub.closer = this.pool.subscribeMany(this.relayUrls, sub.filters, {
112
+ sub.closer = this.pool.subscribeMany(this.normalizedRelayUrls, sub.filters, {
78
113
  onevent: sub.onEvent,
79
114
  oneose: sub.onEose,
80
115
  });
@@ -83,8 +118,12 @@ export class SimpleRelayPool {
83
118
  async disconnect(relayUrls) {
84
119
  if (!relayUrls) {
85
120
  relayUrls = this.relayUrls;
86
- // Clear all reconnect intervals when disconnecting all relays
87
- this.reconnectIntervals.clear();
121
+ // Reset all relay states when disconnecting all relays
122
+ this.relayStates.forEach((state) => {
123
+ state.reconnectInterval = 1000;
124
+ state.retryCount = 0;
125
+ state.isReconnecting = false;
126
+ });
88
127
  // Clear the reconnect loop timer
89
128
  if (this.reconnectTimer) {
90
129
  clearTimeout(this.reconnectTimer);
@@ -92,20 +131,25 @@ export class SimpleRelayPool {
92
131
  }
93
132
  }
94
133
  else {
95
- // Clear reconnect intervals for specific relays
96
- relayUrls.forEach((url) => {
97
- const normalizedUrl = new URL(url).href;
98
- this.reconnectIntervals.delete(normalizedUrl);
134
+ // Reset relay states for specific relays
135
+ const normalizedUrls = relayUrls.map((url) => new URL(url).href);
136
+ normalizedUrls.forEach((url) => {
137
+ const state = this.relayStates.get(url);
138
+ if (state) {
139
+ state.reconnectInterval = 1000;
140
+ state.retryCount = 0;
141
+ state.isReconnecting = false;
142
+ }
99
143
  });
100
144
  }
101
145
  this.pool.close(relayUrls);
102
146
  await sleep(100);
103
147
  }
104
148
  async publish(event) {
105
- await Promise.all(this.pool.publish(this.relayUrls, event));
149
+ await Promise.all(this.pool.publish(this.normalizedRelayUrls, event));
106
150
  }
107
151
  async subscribe(filters, onEvent, onEose) {
108
- const closer = this.pool.subscribeMany(this.relayUrls, filters, {
152
+ const closer = this.pool.subscribeMany(this.normalizedRelayUrls, filters, {
109
153
  onevent: onEvent,
110
154
  oneose: onEose,
111
155
  });
@@ -1 +1 @@
1
- {"version":3,"file":"simple-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simple-relay-pool.js","sourceRoot":"","sources":["../../../src/relay/simple-relay-pool.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { NostrSigner } from '../core/interfaces.js';
8
8
  export declare class PrivateKeySigner implements NostrSigner {
9
9
  private readonly privateKey;
10
10
  private readonly publicKey;
11
- constructor(privateKey: string);
11
+ constructor(privateKey?: string);
12
12
  getPublicKey(): Promise<string>;
13
13
  signEvent(event: UnsignedEvent): Promise<NostrEvent>;
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"private-key-signer.d.ts","sourceRoot":"","sources":["../../../src/signer/private-key-signer.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,UAAU,EAAE,MAAM;IAKxB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;OAEG;IACH,KAAK;0BACqB,MAAM,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;0BAQ3C,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;MAOpE;CACH"}
1
+ {"version":3,"file":"private-key-signer.d.ts","sourceRoot":"","sources":["../../../src/signer/private-key-signer.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,WAAW;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,UAAU,CAAC,EAAE,MAAM;IAKzB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1D;;OAEG;IACH,KAAK;0BACqB,MAAM,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;0BAQ3C,MAAM,cAAc,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;MAOpE;CACH"}
@@ -1,5 +1,5 @@
1
1
  import { hexToBytes } from '@noble/hashes/utils';
2
- import { finalizeEvent, getPublicKey, } from 'nostr-tools';
2
+ import { finalizeEvent, generateSecretKey, getPublicKey, } from 'nostr-tools';
3
3
  import { nip44 } from 'nostr-tools';
4
4
  /**
5
5
  * A signer that uses a private key to sign events.
@@ -21,7 +21,7 @@ export class PrivateKeySigner {
21
21
  return nip44.v2.decrypt(ciphertext, conversationKey);
22
22
  },
23
23
  };
24
- this.privateKey = hexToBytes(privateKey);
24
+ this.privateKey = privateKey ? hexToBytes(privateKey) : generateSecretKey();
25
25
  this.publicKey = getPublicKey(this.privateKey);
26
26
  }
27
27
  async getPublicKey() {
@@ -1 +1 @@
1
- {"version":3,"file":"private-key-signer.js","sourceRoot":"","sources":["../../../src/signer/private-key-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,aAAa,EACb,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAI3B,YAAY,UAAkB;QAa9B;;WAEG;QACH,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAmB,EAAE;gBACpE,MAAM,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CACvD,IAAI,CAAC,UAAU,EACf,MAAM,CACP,CAAC;gBACF,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,UAAkB,EAAmB,EAAE;gBACrE,MAAM,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CACvD,IAAI,CAAC,UAAU,EACf,MAAM,CACP,CAAC;gBACF,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACvD,CAAC;SACF,CAAC;QA/BA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoB;QAClC,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CAsBF"}
1
+ {"version":3,"file":"private-key-signer.js","sourceRoot":"","sources":["../../../src/signer/private-key-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,GAGb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IAI3B,YAAY,UAAmB;QAa/B;;WAEG;QACH,UAAK,GAAG;YACN,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAmB,EAAE;gBACpE,MAAM,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CACvD,IAAI,CAAC,UAAU,EACf,MAAM,CACP,CAAC;gBACF,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,MAAc,EAAE,UAAkB,EAAmB,EAAE;gBACrE,MAAM,eAAe,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,CACvD,IAAI,CAAC,UAAU,EACf,MAAM,CACP,CAAC;gBACF,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACvD,CAAC;SACF,CAAC;QA/BA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAoB;QAClC,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;CAsBF"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-nostr-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/base-nostr-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAC;AAgB/B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;GAGG;AACH,8BAAsB,kBAAkB;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,SAAS,CAAC,WAAW,UAAS;gBAElB,OAAO,EAAE,yBAAyB;IAM9C;;OAEG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxC;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3C;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;cACa,SAAS,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACH,SAAS,CAAC,6BAA6B,CACrC,KAAK,EAAE,UAAU,GAChB,cAAc,GAAG,IAAI;IAwBxB;;OAEG;cACa,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,UAAU,CAAC;IAMtB;;OAEG;cACa,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;OAEG;cACa,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,CAAC;IAoClB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CACjC,YAAY,EAAE,MAAM,EACpB,iBAAiB,GAAE,OAAO,CAAC,MAAM,CAAM,GACtC,MAAM,EAAE;IAWX;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAK1E;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,UAAU,CAAC,MAAM,CAAC;CAOtB"}
1
+ {"version":3,"file":"base-nostr-transport.d.ts","sourceRoot":"","sources":["../../../src/transport/base-nostr-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACb,MAAM,uBAAuB,CAAC;AAkB/B;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;GAGG;AACH,8BAAsB,kBAAkB;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC9C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,SAAS,CAAC,WAAW,UAAS;gBAElB,OAAO,EAAE,yBAAyB;IAM9C;;OAEG;cACa,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IASxC;;OAEG;cACa,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3C;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;cACa,SAAS,CACvB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACH,SAAS,CAAC,6BAA6B,CACrC,KAAK,EAAE,UAAU,GAChB,cAAc,GAAG,IAAI;IAwBxB;;OAEG;cACa,sBAAsB,CACpC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GACxB,OAAO,CAAC,UAAU,CAAC;IAMtB;;OAEG;cACa,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D;;OAEG;cACa,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,kBAAkB,EAAE,MAAM,EAC1B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,EACzB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,CAAC;IAoClB;;OAEG;IACH,SAAS,CAAC,yBAAyB,CACjC,YAAY,EAAE,MAAM,EACpB,iBAAiB,GAAE,OAAO,CAAC,MAAM,CAAM,GACtC,MAAM,EAAE;IAWX;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAK1E;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAC1B,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,UAAU,CAAC,MAAM,CAAC;CAOtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-nostr-transport.js","sourceRoot":"","sources":["../../../src/transport/base-nostr-transport.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,GAGf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAW9E;;;GAGG;AACH,MAAM,OAAgB,kBAAkB;IAMtC,YAAY,OAAkC;;QAFpC,gBAAW,GAAG,KAAK,CAAC;QAG5B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,MAAA,OAAO,CAAC,cAAc,mCAAI,cAAc,CAAC,QAAQ,CAAC;IAC1E,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,OAAO;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,UAAU;QACxB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY;QAC1B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,SAAS,CACvB,OAAiB,EACjB,OAAoD;QAEpD,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACO,6BAA6B,CACrC,KAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,IAAI,CAAC;YACd,CAAC;YAED,6BAA6B;YAC7B,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,wBAAwB;YACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,sBAAsB,CACpC,OAAuB,EACvB,IAAY,EACZ,IAAyB;QAEzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,YAAY,CAAC,KAAiB;QAC5C,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,cAAc,CAC5B,OAAuB,EACvB,kBAA0B,EAC1B,IAAY,EACZ,IAAyB,EACzB,WAAqB;QAErB,MAAM,gBAAgB,GAAG;YACvB,wBAAwB;YACxB,eAAe;YACf,mBAAmB;YACnB,2BAA2B;YAC3B,iBAAiB;SAClB,CAAC;QAEF,IAAI,aAAa,GAAY,IAAI,CAAC;QAClC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;gBACpD,aAAa,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC3D,aAAa,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC3D,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAErE,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,cAAc,GAAG,cAAc,CACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EACrB,kBAAkB,CACnB,CAAC;YACF,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACO,yBAAyB,CACjC,YAAoB,EACpB,oBAAqC,EAAE;QAEvC,OAAO;YACL;gBACE,IAAI,EAAE,CAAC,YAAY,CAAC;gBACpB,KAAK,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBACpC,GAAG,iBAAiB;aACrB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,eAAuB;QACnD,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,kBAAkB,CAC1B,eAAuB,EACvB,eAAuB;QAEvB,MAAM,IAAI,GAAG;YACX,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC;YACpC,CAAC,UAAU,CAAC,QAAQ,EAAE,eAAe,CAAC;SACvC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"base-nostr-transport.js","sourceRoot":"","sources":["../../../src/transport/base-nostr-transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contextvm/sdk",
3
- "version": "0.1.14",
3
+ "version": "0.1.16",
4
4
  "description": "CtxVM SDK for JavaScript/TypeScript",
5
5
  "license": "LGPL-3.0-1",
6
6
  "author": "ContextVM",
@@ -47,18 +47,19 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "@changesets/cli": "^2.29.5",
50
- "@eslint/js": "^9.31.0",
50
+ "@eslint/js": "^9.33.0",
51
51
  "@types/bun": "latest",
52
- "eslint": "^9.31.0",
52
+ "eslint": "^9.33.0",
53
53
  "eslint-config-prettier": "^10.1.8",
54
54
  "prettier": "^3.6.2",
55
- "typescript-eslint": "^8.38.0"
55
+ "typescript-eslint": "^8.39.0"
56
56
  },
57
57
  "peerDependencies": {
58
- "typescript": "^5.8.3"
58
+ "typescript": "^5.9.2"
59
59
  },
60
60
  "dependencies": {
61
- "@modelcontextprotocol/sdk": "^1.16.0",
62
- "nostr-tools": "^2.15.0"
61
+ "@modelcontextprotocol/sdk": "^1.17.2",
62
+ "@nostrify/nostrify": "npm:@jsr/nostrify__nostrify",
63
+ "nostr-tools": "^2.16.2"
63
64
  }
64
65
  }