nostr 0.4.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.
- checksums.yaml +4 -4
- data/.adr-dir +1 -0
- data/.editorconfig +1 -1
- data/.rubocop.yml +24 -1
- data/.tool-versions +2 -1
- data/CHANGELOG.md +70 -1
- data/README.md +93 -228
- data/adr/0001-record-architecture-decisions.md +19 -0
- data/adr/0002-introduction-of-signature-class.md +27 -0
- data/docs/.gitignore +4 -0
- data/docs/.vitepress/config.mjs +114 -0
- data/docs/README.md +44 -0
- data/docs/api-examples.md +49 -0
- data/docs/bun.lockb +0 -0
- data/docs/common-use-cases/bech32-encoding-and-decoding-(NIP-19).md +190 -0
- data/docs/common-use-cases/signing-and-verifying-events.md +50 -0
- data/docs/common-use-cases/signing-and-verifying-messages.md +43 -0
- data/docs/core/client.md +108 -0
- data/docs/core/keys.md +136 -0
- data/docs/core/user.md +43 -0
- data/docs/events/contact-list.md +29 -0
- data/docs/events/encrypted-direct-message.md +28 -0
- data/docs/events/recommend-server.md +32 -0
- data/docs/events/set-metadata.md +20 -0
- data/docs/events/text-note.md +15 -0
- data/docs/events.md +11 -0
- data/docs/getting-started/installation.md +21 -0
- data/docs/getting-started/overview.md +171 -0
- data/docs/implemented-nips.md +9 -0
- data/docs/index.md +42 -0
- data/docs/markdown-examples.md +85 -0
- data/docs/package.json +12 -0
- data/docs/relays/connecting-to-a-relay.md +21 -0
- data/docs/relays/publishing-events.md +29 -0
- data/docs/relays/receiving-events.md +6 -0
- data/docs/subscriptions/creating-a-subscription.md +49 -0
- data/docs/subscriptions/deleting-a-subscription.md +10 -0
- data/docs/subscriptions/filtering-subscription-events.md +115 -0
- data/docs/subscriptions/updating-a-subscription.md +4 -0
- data/lib/nostr/bech32.rb +203 -0
- data/lib/nostr/client.rb +2 -1
- data/lib/nostr/crypto.rb +93 -13
- data/lib/nostr/errors/error.rb +7 -0
- data/lib/nostr/errors/invalid_hrp_error.rb +21 -0
- data/lib/nostr/errors/invalid_key_format_error.rb +20 -0
- data/lib/nostr/errors/invalid_key_length_error.rb +20 -0
- data/lib/nostr/errors/invalid_key_type_error.rb +18 -0
- data/lib/nostr/errors/invalid_signature_format_error.rb +18 -0
- data/lib/nostr/errors/invalid_signature_length_error.rb +18 -0
- data/lib/nostr/errors/invalid_signature_type_error.rb +16 -0
- data/lib/nostr/errors/key_validation_error.rb +6 -0
- data/lib/nostr/errors/signature_validation_error.rb +6 -0
- data/lib/nostr/errors.rb +12 -0
- data/lib/nostr/event.rb +40 -13
- data/lib/nostr/event_kind.rb +1 -0
- data/lib/nostr/events/encrypted_direct_message.rb +8 -7
- data/lib/nostr/filter.rb +14 -11
- data/lib/nostr/key.rb +100 -0
- data/lib/nostr/key_pair.rb +54 -6
- data/lib/nostr/keygen.rb +44 -5
- data/lib/nostr/private_key.rb +36 -0
- data/lib/nostr/public_key.rb +36 -0
- data/lib/nostr/relay_message_type.rb +18 -0
- data/lib/nostr/signature.rb +67 -0
- data/lib/nostr/subscription.rb +2 -2
- data/lib/nostr/user.rb +17 -8
- data/lib/nostr/version.rb +1 -1
- data/lib/nostr.rb +7 -0
- data/nostr.gemspec +13 -13
- data/sig/nostr/bech32.rbs +14 -0
- data/sig/nostr/client.rbs +5 -5
- data/sig/nostr/crypto.rbs +8 -5
- data/sig/nostr/errors/error.rbs +4 -0
- data/sig/nostr/errors/invalid_hrb_error.rbs +6 -0
- data/sig/nostr/errors/invalid_key_format_error.rbs +5 -0
- data/sig/nostr/errors/invalid_key_length_error.rbs +5 -0
- data/sig/nostr/errors/invalid_key_type_error.rbs +5 -0
- data/sig/nostr/errors/invalid_signature_format_error.rbs +5 -0
- data/sig/nostr/errors/invalid_signature_length_error.rbs +5 -0
- data/sig/nostr/errors/invalid_signature_type_error.rbs +5 -0
- data/sig/nostr/errors/key_validation_error.rbs +4 -0
- data/sig/nostr/errors/signature_validation_error.rbs +4 -0
- data/sig/nostr/event.rbs +11 -10
- data/sig/nostr/events/encrypted_direct_message.rbs +2 -2
- data/sig/nostr/filter.rbs +3 -12
- data/sig/nostr/key.rbs +16 -0
- data/sig/nostr/key_pair.rbs +8 -3
- data/sig/nostr/keygen.rbs +5 -2
- data/sig/nostr/private_key.rbs +4 -0
- data/sig/nostr/public_key.rbs +4 -0
- data/sig/nostr/relay_message_type.rbs +8 -0
- data/sig/nostr/signature.rbs +14 -0
- data/sig/nostr/user.rbs +4 -8
- data/sig/vendor/bech32/nostr/entity.rbs +41 -0
- data/sig/vendor/bech32/nostr/nip19.rbs +20 -0
- data/sig/vendor/bech32/segwit_addr.rbs +21 -0
- data/sig/vendor/bech32.rbs +25 -0
- data/sig/vendor/event_emitter.rbs +10 -3
- data/sig/vendor/event_machine/channel.rbs +1 -1
- data/sig/vendor/faye/websocket/api.rbs +45 -0
- data/sig/vendor/faye/websocket/client.rbs +43 -0
- data/sig/vendor/faye/websocket.rbs +30 -0
- data/sig/vendor/schnorr/signature.rbs +16 -0
- data/sig/vendor/schnorr.rbs +3 -1
- metadata +102 -28
@@ -1,9 +1,16 @@
|
|
1
1
|
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
2
|
module EventEmitter
|
3
|
-
|
3
|
+
interface _Event
|
4
|
+
def data: -> String
|
5
|
+
def message: -> String
|
6
|
+
def code: -> Integer
|
7
|
+
def reason: -> String
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_listener: (Symbol event_name) { (_Event event) -> void } -> void
|
4
11
|
alias on add_listener
|
5
12
|
|
6
13
|
def remove_listener: (untyped id_or_type) -> Array[untyped]?
|
7
|
-
def emit: (
|
8
|
-
def once: (
|
14
|
+
def emit: (Symbol `type`, *untyped data) -> Array[untyped]
|
15
|
+
def once: (Symbol `type`) -> Integer
|
9
16
|
end
|
@@ -6,7 +6,7 @@ module EventMachine
|
|
6
6
|
|
7
7
|
def initialize: -> void
|
8
8
|
def num_subscribers: -> Integer
|
9
|
-
def subscribe: (*untyped a) ?{ -> untyped } -> Integer
|
9
|
+
def subscribe: (*untyped a) ?{ (untyped) -> untyped } -> Integer
|
10
10
|
def unsubscribe: (untyped name) -> untyped
|
11
11
|
def push: (*untyped items) -> untyped
|
12
12
|
alias << push
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
|
+
module Faye
|
3
|
+
class WebSocket
|
4
|
+
module API
|
5
|
+
CONNECTING: Integer
|
6
|
+
OPEN: Integer
|
7
|
+
CLOSING: Integer
|
8
|
+
CLOSED: Integer
|
9
|
+
CLOSE_TIMEOUT: Integer
|
10
|
+
|
11
|
+
@driver: untyped
|
12
|
+
@ping: nil
|
13
|
+
@ping_id: Integer
|
14
|
+
@stream: nil
|
15
|
+
@proxy: nil
|
16
|
+
@ping_timer: nil
|
17
|
+
@close_timer: nil
|
18
|
+
@close_params: [String, Integer]?
|
19
|
+
@onerror: nil
|
20
|
+
@onclose: nil
|
21
|
+
@onmessage: nil
|
22
|
+
@onopen: nil
|
23
|
+
|
24
|
+
attr_reader url: untyped
|
25
|
+
attr_reader ready_state: Integer
|
26
|
+
attr_reader buffered_amount: Integer
|
27
|
+
|
28
|
+
def initialize: (?Hash[untyped, untyped] options) -> void
|
29
|
+
def write: (untyped data) -> untyped
|
30
|
+
def send: (untyped message) -> false
|
31
|
+
def ping: (?String message) -> false
|
32
|
+
def close: (?nil code, ?nil reason) -> untyped
|
33
|
+
def protocol: -> String
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def open: -> nil
|
38
|
+
def receive_message: (untyped data) -> nil
|
39
|
+
def emit_error: (untyped message) -> nil
|
40
|
+
def begin_close: (String reason, Integer code, ?Hash[untyped, untyped] options) -> nil
|
41
|
+
def finalize_close: -> nil
|
42
|
+
def parse: (untyped data) -> untyped
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
|
+
module Faye
|
3
|
+
class WebSocket
|
4
|
+
class Client
|
5
|
+
DEFAULT_PORTS: Hash[String, Integer]
|
6
|
+
SECURE_PROTOCOLS: [String, String]
|
7
|
+
|
8
|
+
include EventEmitter
|
9
|
+
include API
|
10
|
+
|
11
|
+
@url: untyped
|
12
|
+
@endpoint: untyped
|
13
|
+
@origin_tls: Hash[untyped, untyped]
|
14
|
+
@socket_tls: Hash[untyped, untyped]
|
15
|
+
@driver: bot
|
16
|
+
@proxy: nil
|
17
|
+
@ssl_verifier: untyped
|
18
|
+
@stream: untyped
|
19
|
+
|
20
|
+
def initialize: (untyped url, ?Array[String] protocols, ?Hash[untyped, untyped] options) -> void
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def configure_proxy: (Hash[untyped, untyped] proxy) -> nil
|
25
|
+
def start_tls: (untyped uri, Hash[untyped, untyped] options) -> nil
|
26
|
+
def on_connect: (untyped stream) -> untyped
|
27
|
+
def on_network_error: (nil error) -> untyped
|
28
|
+
def ssl_verify_peer: (untyped cert) -> untyped
|
29
|
+
def ssl_handshake_completed: -> untyped
|
30
|
+
|
31
|
+
module Connection
|
32
|
+
attr_accessor parent: bot
|
33
|
+
|
34
|
+
def connection_completed: -> untyped
|
35
|
+
def ssl_verify_peer: (untyped cert) -> untyped
|
36
|
+
def ssl_handshake_completed: -> untyped
|
37
|
+
def receive_data: (untyped data) -> untyped
|
38
|
+
def unbind: (?nil error) -> untyped
|
39
|
+
def write: (untyped data) -> nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
|
+
module Faye
|
3
|
+
class WebSocket
|
4
|
+
ADAPTERS: Hash[String, :Goliath | :Rainbows | :Thin]
|
5
|
+
|
6
|
+
@url: String
|
7
|
+
@driver_started: false
|
8
|
+
@stream: Stream
|
9
|
+
@driver: bot
|
10
|
+
|
11
|
+
def self.determine_url: (untyped env, ?[String, String] schemes) -> String
|
12
|
+
def self.ensure_reactor_running: -> nil
|
13
|
+
def self.load_adapter: (untyped backend) -> bool?
|
14
|
+
def self.secure_request?: (untyped env) -> bool
|
15
|
+
def self.websocket?: (untyped env) -> untyped
|
16
|
+
|
17
|
+
attr_reader env: untyped
|
18
|
+
|
19
|
+
def initialize: (untyped env, ?nil protocols, ?Hash[untyped, untyped] options) -> void
|
20
|
+
def start_driver: -> nil
|
21
|
+
def rack_response: -> [Integer, Hash[untyped, untyped], Array[untyped]]
|
22
|
+
|
23
|
+
class Stream
|
24
|
+
@socket_object: bot
|
25
|
+
|
26
|
+
def fail: -> untyped
|
27
|
+
def receive: (untyped data) -> untyped
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
|
+
module Schnorr
|
3
|
+
class InvalidSignatureError < StandardError
|
4
|
+
end
|
5
|
+
|
6
|
+
class Signature
|
7
|
+
attr_reader r: Integer
|
8
|
+
attr_reader s: Integer
|
9
|
+
|
10
|
+
def self.decode: (String string) -> Signature
|
11
|
+
|
12
|
+
def initialize: (Integer r, Integer s) -> void
|
13
|
+
def encode: -> String
|
14
|
+
def ==: (untyped other) -> bool
|
15
|
+
end
|
16
|
+
end
|
data/sig/vendor/schnorr.rbs
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# Added only to satisfy the Steep requirements. Not 100% reliable.
|
2
2
|
module Schnorr
|
3
|
-
def self.sign: (String message, String private_key, ?String aux_rand) ->
|
3
|
+
def self.sign: (String message, String private_key, ?String aux_rand) -> Signature
|
4
|
+
def self.valid_sig?: (String message, String public_key, String signature) -> bool
|
5
|
+
def self.check_sig!: (String message, String public_key, String signature) -> bool
|
4
6
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nostr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wilson Silva
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bech32
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1.
|
26
|
+
version: '1.4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bip-schnorr
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0.
|
33
|
+
version: '0.7'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0.
|
40
|
+
version: '0.7'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: ecdsa
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '3.1'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '3.1'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: guard
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: '0.
|
201
|
+
version: '0.63'
|
202
202
|
type: :development
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: '0.
|
208
|
+
version: '0.63'
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: pry
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +226,14 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - "~>"
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
229
|
+
version: '6.4'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - "~>"
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
236
|
+
version: '6.4'
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: rack
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,56 +254,56 @@ dependencies:
|
|
254
254
|
requirements:
|
255
255
|
- - "~>"
|
256
256
|
- !ruby/object:Gem::Version
|
257
|
-
version: '13.
|
257
|
+
version: '13.1'
|
258
258
|
type: :development
|
259
259
|
prerelease: false
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
261
261
|
requirements:
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
|
-
version: '13.
|
264
|
+
version: '13.1'
|
265
265
|
- !ruby/object:Gem::Dependency
|
266
266
|
name: rbs
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
268
268
|
requirements:
|
269
269
|
- - "~>"
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version: '
|
271
|
+
version: '3.4'
|
272
272
|
type: :development
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version: '
|
278
|
+
version: '3.4'
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: rspec
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
282
282
|
requirements:
|
283
283
|
- - "~>"
|
284
284
|
- !ruby/object:Gem::Version
|
285
|
-
version: '3.
|
285
|
+
version: '3.13'
|
286
286
|
type: :development
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
290
|
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: '3.
|
292
|
+
version: '3.13'
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
294
|
name: rubocop
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
297
|
- - "~>"
|
298
298
|
- !ruby/object:Gem::Version
|
299
|
-
version: '1.
|
299
|
+
version: '1.62'
|
300
300
|
type: :development
|
301
301
|
prerelease: false
|
302
302
|
version_requirements: !ruby/object:Gem::Requirement
|
303
303
|
requirements:
|
304
304
|
- - "~>"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version: '1.
|
306
|
+
version: '1.62'
|
307
307
|
- !ruby/object:Gem::Dependency
|
308
308
|
name: rubocop-rake
|
309
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,14 +324,14 @@ dependencies:
|
|
324
324
|
requirements:
|
325
325
|
- - '='
|
326
326
|
- !ruby/object:Gem::Version
|
327
|
-
version: '2.
|
327
|
+
version: '2.27'
|
328
328
|
type: :development
|
329
329
|
prerelease: false
|
330
330
|
version_requirements: !ruby/object:Gem::Requirement
|
331
331
|
requirements:
|
332
332
|
- - '='
|
333
333
|
- !ruby/object:Gem::Version
|
334
|
-
version: '2.
|
334
|
+
version: '2.27'
|
335
335
|
- !ruby/object:Gem::Dependency
|
336
336
|
name: simplecov
|
337
337
|
requirement: !ruby/object:Gem::Requirement
|
@@ -366,14 +366,14 @@ dependencies:
|
|
366
366
|
requirements:
|
367
367
|
- - "~>"
|
368
368
|
- !ruby/object:Gem::Version
|
369
|
-
version: '1.
|
369
|
+
version: '1.6'
|
370
370
|
type: :development
|
371
371
|
prerelease: false
|
372
372
|
version_requirements: !ruby/object:Gem::Requirement
|
373
373
|
requirements:
|
374
374
|
- - "~>"
|
375
375
|
- !ruby/object:Gem::Version
|
376
|
-
version: '1.
|
376
|
+
version: '1.6'
|
377
377
|
- !ruby/object:Gem::Dependency
|
378
378
|
name: typeprof
|
379
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -437,6 +437,7 @@ executables: []
|
|
437
437
|
extensions: []
|
438
438
|
extra_rdoc_files: []
|
439
439
|
files:
|
440
|
+
- ".adr-dir"
|
440
441
|
- ".editorconfig"
|
441
442
|
- ".overcommit.yml"
|
442
443
|
- ".rspec"
|
@@ -452,45 +453,118 @@ files:
|
|
452
453
|
- README.md
|
453
454
|
- Rakefile
|
454
455
|
- Steepfile
|
456
|
+
- adr/0001-record-architecture-decisions.md
|
457
|
+
- adr/0002-introduction-of-signature-class.md
|
458
|
+
- docs/.gitignore
|
459
|
+
- docs/.vitepress/config.mjs
|
460
|
+
- docs/README.md
|
461
|
+
- docs/api-examples.md
|
462
|
+
- docs/bun.lockb
|
463
|
+
- docs/common-use-cases/bech32-encoding-and-decoding-(NIP-19).md
|
464
|
+
- docs/common-use-cases/signing-and-verifying-events.md
|
465
|
+
- docs/common-use-cases/signing-and-verifying-messages.md
|
466
|
+
- docs/core/client.md
|
467
|
+
- docs/core/keys.md
|
468
|
+
- docs/core/user.md
|
469
|
+
- docs/events.md
|
470
|
+
- docs/events/contact-list.md
|
471
|
+
- docs/events/encrypted-direct-message.md
|
472
|
+
- docs/events/recommend-server.md
|
473
|
+
- docs/events/set-metadata.md
|
474
|
+
- docs/events/text-note.md
|
475
|
+
- docs/getting-started/installation.md
|
476
|
+
- docs/getting-started/overview.md
|
477
|
+
- docs/implemented-nips.md
|
478
|
+
- docs/index.md
|
479
|
+
- docs/markdown-examples.md
|
480
|
+
- docs/package.json
|
481
|
+
- docs/relays/connecting-to-a-relay.md
|
482
|
+
- docs/relays/publishing-events.md
|
483
|
+
- docs/relays/receiving-events.md
|
484
|
+
- docs/subscriptions/creating-a-subscription.md
|
485
|
+
- docs/subscriptions/deleting-a-subscription.md
|
486
|
+
- docs/subscriptions/filtering-subscription-events.md
|
487
|
+
- docs/subscriptions/updating-a-subscription.md
|
455
488
|
- lib/nostr.rb
|
489
|
+
- lib/nostr/bech32.rb
|
456
490
|
- lib/nostr/client.rb
|
457
491
|
- lib/nostr/client_message_type.rb
|
458
492
|
- lib/nostr/crypto.rb
|
493
|
+
- lib/nostr/errors.rb
|
494
|
+
- lib/nostr/errors/error.rb
|
495
|
+
- lib/nostr/errors/invalid_hrp_error.rb
|
496
|
+
- lib/nostr/errors/invalid_key_format_error.rb
|
497
|
+
- lib/nostr/errors/invalid_key_length_error.rb
|
498
|
+
- lib/nostr/errors/invalid_key_type_error.rb
|
499
|
+
- lib/nostr/errors/invalid_signature_format_error.rb
|
500
|
+
- lib/nostr/errors/invalid_signature_length_error.rb
|
501
|
+
- lib/nostr/errors/invalid_signature_type_error.rb
|
502
|
+
- lib/nostr/errors/key_validation_error.rb
|
503
|
+
- lib/nostr/errors/signature_validation_error.rb
|
459
504
|
- lib/nostr/event.rb
|
460
505
|
- lib/nostr/event_kind.rb
|
461
506
|
- lib/nostr/events/encrypted_direct_message.rb
|
462
507
|
- lib/nostr/filter.rb
|
508
|
+
- lib/nostr/key.rb
|
463
509
|
- lib/nostr/key_pair.rb
|
464
510
|
- lib/nostr/keygen.rb
|
511
|
+
- lib/nostr/private_key.rb
|
512
|
+
- lib/nostr/public_key.rb
|
465
513
|
- lib/nostr/relay.rb
|
514
|
+
- lib/nostr/relay_message_type.rb
|
515
|
+
- lib/nostr/signature.rb
|
466
516
|
- lib/nostr/subscription.rb
|
467
517
|
- lib/nostr/user.rb
|
468
518
|
- lib/nostr/version.rb
|
469
519
|
- nostr.gemspec
|
470
520
|
- sig/nostr.rbs
|
521
|
+
- sig/nostr/bech32.rbs
|
471
522
|
- sig/nostr/client.rbs
|
472
523
|
- sig/nostr/client_message_type.rbs
|
473
524
|
- sig/nostr/crypto.rbs
|
525
|
+
- sig/nostr/errors/error.rbs
|
526
|
+
- sig/nostr/errors/invalid_hrb_error.rbs
|
527
|
+
- sig/nostr/errors/invalid_key_format_error.rbs
|
528
|
+
- sig/nostr/errors/invalid_key_length_error.rbs
|
529
|
+
- sig/nostr/errors/invalid_key_type_error.rbs
|
530
|
+
- sig/nostr/errors/invalid_signature_format_error.rbs
|
531
|
+
- sig/nostr/errors/invalid_signature_length_error.rbs
|
532
|
+
- sig/nostr/errors/invalid_signature_type_error.rbs
|
533
|
+
- sig/nostr/errors/key_validation_error.rbs
|
534
|
+
- sig/nostr/errors/signature_validation_error.rbs
|
474
535
|
- sig/nostr/event.rbs
|
475
536
|
- sig/nostr/event_kind.rbs
|
476
537
|
- sig/nostr/events/encrypted_direct_message.rbs
|
477
538
|
- sig/nostr/filter.rbs
|
539
|
+
- sig/nostr/key.rbs
|
478
540
|
- sig/nostr/key_pair.rbs
|
479
541
|
- sig/nostr/keygen.rbs
|
542
|
+
- sig/nostr/private_key.rbs
|
543
|
+
- sig/nostr/public_key.rbs
|
480
544
|
- sig/nostr/relay.rbs
|
545
|
+
- sig/nostr/relay_message_type.rbs
|
546
|
+
- sig/nostr/signature.rbs
|
481
547
|
- sig/nostr/subscription.rbs
|
482
548
|
- sig/nostr/user.rbs
|
549
|
+
- sig/vendor/bech32.rbs
|
550
|
+
- sig/vendor/bech32/nostr/entity.rbs
|
551
|
+
- sig/vendor/bech32/nostr/nip19.rbs
|
552
|
+
- sig/vendor/bech32/segwit_addr.rbs
|
483
553
|
- sig/vendor/ecsda/group/secp256k1.rbs
|
484
554
|
- sig/vendor/event_emitter.rbs
|
485
555
|
- sig/vendor/event_machine.rbs
|
486
556
|
- sig/vendor/event_machine/channel.rbs
|
557
|
+
- sig/vendor/faye/websocket.rbs
|
558
|
+
- sig/vendor/faye/websocket/api.rbs
|
559
|
+
- sig/vendor/faye/websocket/client.rbs
|
487
560
|
- sig/vendor/schnorr.rbs
|
488
|
-
|
561
|
+
- sig/vendor/schnorr/signature.rbs
|
562
|
+
homepage: https://nostr-ruby.com/
|
489
563
|
licenses:
|
490
564
|
- MIT
|
491
565
|
metadata:
|
492
566
|
rubygems_mfa_required: 'true'
|
493
|
-
homepage_uri: https://
|
567
|
+
homepage_uri: https://nostr-ruby.com/
|
494
568
|
source_code_uri: https://github.com/wilsonsilva/nostr
|
495
569
|
changelog_uri: https://github.com/wilsonsilva/nostr/blob/main/CHANGELOG.md
|
496
570
|
post_install_message:
|
@@ -501,14 +575,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
501
575
|
requirements:
|
502
576
|
- - ">="
|
503
577
|
- !ruby/object:Gem::Version
|
504
|
-
version: 3.
|
578
|
+
version: 3.3.0
|
505
579
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
506
580
|
requirements:
|
507
581
|
- - ">="
|
508
582
|
- !ruby/object:Gem::Version
|
509
583
|
version: '0'
|
510
584
|
requirements: []
|
511
|
-
rubygems_version: 3.
|
585
|
+
rubygems_version: 3.5.6
|
512
586
|
signing_key:
|
513
587
|
specification_version: 4
|
514
588
|
summary: Client and relay implementation of the Nostr protocol.
|