nostr 0.5.0 → 0.7.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/.rubocop.yml +3 -1
 - data/.rubocop_todo.yml +1 -1
 - data/.tool-versions +2 -2
 - data/CHANGELOG.md +63 -1
 - data/README.md +6 -2
 - data/adr/0001-record-architecture-decisions.md +19 -0
 - data/adr/0002-introduction-of-signature-class.md +27 -0
 - data/adr/0003-logging-methods-vs-logger-class.md +122 -0
 - data/adr/0004-default-logging-activation.md +66 -0
 - data/adr/0005-logger-types.md +32 -0
 - data/docs/.vitepress/config.mjs +3 -0
 - data/docs/bun.lockb +0 -0
 - data/docs/common-use-cases/logging-and-debugging.md +60 -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 +1 -1
 - data/docs/getting-started/overview.md +5 -1
 - data/docs/index.md +0 -2
 - data/docs/package.json +3 -3
 - data/lib/nostr/client/color_logger.rb +69 -0
 - data/lib/nostr/client/logger.rb +85 -0
 - data/lib/nostr/client/plain_logger.rb +69 -0
 - data/lib/nostr/client.rb +32 -6
 - data/lib/nostr/crypto.rb +82 -6
 - data/lib/nostr/errors/invalid_key_format_error.rb +1 -1
 - data/lib/nostr/errors/invalid_key_length_error.rb +1 -1
 - data/lib/nostr/errors/invalid_key_type_error.rb +1 -1
 - 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/signature_validation_error.rb +6 -0
 - data/lib/nostr/errors.rb +4 -0
 - data/lib/nostr/event.rb +36 -9
 - data/lib/nostr/event_kind.rb +1 -0
 - data/lib/nostr/events/encrypted_direct_message.rb +4 -4
 - data/lib/nostr/filter.rb +10 -7
 - data/lib/nostr/key.rb +2 -2
 - data/lib/nostr/key_pair.rb +26 -2
 - data/lib/nostr/keygen.rb +1 -1
 - data/lib/nostr/signature.rb +67 -0
 - data/lib/nostr/version.rb +1 -1
 - data/lib/nostr.rb +3 -0
 - data/nostr.gemspec +10 -10
 - data/sig/nostr/client/color_logger.rbs +6 -0
 - data/sig/nostr/client/logger.rbs +12 -0
 - data/sig/nostr/client/plain_logger.rbs +6 -0
 - data/sig/nostr/client.rbs +2 -0
 - data/sig/nostr/crypto.rbs +3 -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/signature_validation_error.rbs +4 -0
 - data/sig/nostr/event.rbs +7 -6
 - data/sig/nostr/key_pair.rbs +1 -0
 - data/sig/nostr/signature.rbs +14 -0
 - data/sig/vendor/event_emitter.rbs +8 -10
 - data/sig/vendor/schnorr/signature.rbs +16 -0
 - data/sig/vendor/schnorr.rbs +3 -1
 - metadata +48 -22
 
    
        data/lib/nostr/key_pair.rb
    CHANGED
    
    | 
         @@ -38,8 +38,8 @@ module Nostr 
     | 
|
| 
       38 
38 
     | 
    
         
             
                # @param private_key [PrivateKey] 32-bytes hex-encoded private key.
         
     | 
| 
       39 
39 
     | 
    
         
             
                # @param public_key [PublicKey] 32-bytes hex-encoded public key.
         
     | 
| 
       40 
40 
     | 
    
         
             
                #
         
     | 
| 
       41 
     | 
    
         
            -
                # @raise ArgumentError when the private key is not a  
     | 
| 
       42 
     | 
    
         
            -
                # @raise ArgumentError when the public key is not a  
     | 
| 
      
 41 
     | 
    
         
            +
                # @raise ArgumentError when the private key is not a {PrivateKey}
         
     | 
| 
      
 42 
     | 
    
         
            +
                # @raise ArgumentError when the public key is not a {PublicKey}
         
     | 
| 
       43 
43 
     | 
    
         
             
                #
         
     | 
| 
       44 
44 
     | 
    
         
             
                def initialize(private_key:, public_key:)
         
     | 
| 
       45 
45 
     | 
    
         
             
                  validate_keys(private_key, public_key)
         
     | 
| 
         @@ -48,6 +48,30 @@ module Nostr 
     | 
|
| 
       48 
48 
     | 
    
         
             
                  @public_key = public_key
         
     | 
| 
       49 
49 
     | 
    
         
             
                end
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
      
 51 
     | 
    
         
            +
                # Allows array destructuring of the KeyPair, enabling the extraction of +PrivateKey+ and +PublicKey+ separately
         
     | 
| 
      
 52 
     | 
    
         
            +
                #
         
     | 
| 
      
 53 
     | 
    
         
            +
                # @api public
         
     | 
| 
      
 54 
     | 
    
         
            +
                #
         
     | 
| 
      
 55 
     | 
    
         
            +
                # @example Implicit usage of `to_ary` for destructuring
         
     | 
| 
      
 56 
     | 
    
         
            +
                #   keypair = Nostr::KeyPair.new(
         
     | 
| 
      
 57 
     | 
    
         
            +
                #     private_key: Nostr::PrivateKey.new('7d1e4219a5e7d8342654c675085bfbdee143f0eb0f0921f5541ef1705a2b407d'),
         
     | 
| 
      
 58 
     | 
    
         
            +
                #     public_key: Nostr::PublicKey.new('15678d8fbc126fa326fac536acd5a6dcb5ef64b3d939abe31d6830cba6cd26d6'),
         
     | 
| 
      
 59 
     | 
    
         
            +
                #   )
         
     | 
| 
      
 60 
     | 
    
         
            +
                #   # The `to_ary` method can be implicitly used for array destructuring:
         
     | 
| 
      
 61 
     | 
    
         
            +
                #   private_key, public_key = keypair
         
     | 
| 
      
 62 
     | 
    
         
            +
                #   # Now `private_key` and `public_key` hold the respective values.
         
     | 
| 
      
 63 
     | 
    
         
            +
                #
         
     | 
| 
      
 64 
     | 
    
         
            +
                # @example Explicit usage of `to_ary`
         
     | 
| 
      
 65 
     | 
    
         
            +
                #   array_representation = keypair.to_ary
         
     | 
| 
      
 66 
     | 
    
         
            +
                #   # array_representation is now an array: [PrivateKey, PublicKey]
         
     | 
| 
      
 67 
     | 
    
         
            +
                #   # where PrivateKey and PublicKey are the respective objects.
         
     | 
| 
      
 68 
     | 
    
         
            +
                #
         
     | 
| 
      
 69 
     | 
    
         
            +
                # @return [Array<PrivateKey, PublicKey>] An array containing the {PrivateKey} and {PublicKey} in that order
         
     | 
| 
      
 70 
     | 
    
         
            +
                #
         
     | 
| 
      
 71 
     | 
    
         
            +
                def to_ary
         
     | 
| 
      
 72 
     | 
    
         
            +
                  [private_key, public_key]
         
     | 
| 
      
 73 
     | 
    
         
            +
                end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
       51 
75 
     | 
    
         
             
                private
         
     | 
| 
       52 
76 
     | 
    
         | 
| 
       53 
77 
     | 
    
         
             
                # Validates the keys
         
     | 
    
        data/lib/nostr/keygen.rb
    CHANGED
    
    | 
         @@ -22,7 +22,7 @@ module Nostr 
     | 
|
| 
       22 
22 
     | 
    
         
             
                # @api public
         
     | 
| 
       23 
23 
     | 
    
         
             
                #
         
     | 
| 
       24 
24 
     | 
    
         
             
                # @example
         
     | 
| 
       25 
     | 
    
         
            -
                #   keypair = keygen. 
     | 
| 
      
 25 
     | 
    
         
            +
                #   keypair = keygen.generate_key_pair
         
     | 
| 
       26 
26 
     | 
    
         
             
                #   keypair # #<Nostr::KeyPair:0x0000000107bd3550
         
     | 
| 
       27 
27 
     | 
    
         
             
                #    @private_key="893c4cc8088924796b41dc788f7e2f746734497010b1a9f005c1faad7074b900",
         
     | 
| 
       28 
28 
     | 
    
         
             
                #    @public_key="2d7661527d573cc8e84f665fa971dd969ba51e2526df00c149ff8e40a58f9558">
         
     | 
| 
         @@ -0,0 +1,67 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            module Nostr
         
     | 
| 
      
 4 
     | 
    
         
            +
              # 64-bytes lowercase hex of the signature of the sha256 hash of the serialized event data,
         
     | 
| 
      
 5 
     | 
    
         
            +
              # which is the same as the "id" field
         
     | 
| 
      
 6 
     | 
    
         
            +
              class Signature < String
         
     | 
| 
      
 7 
     | 
    
         
            +
                # The regular expression for hexadecimal lowercase characters
         
     | 
| 
      
 8 
     | 
    
         
            +
                #
         
     | 
| 
      
 9 
     | 
    
         
            +
                # @return [Regexp] The regular expression for hexadecimal lowercase characters
         
     | 
| 
      
 10 
     | 
    
         
            +
                #
         
     | 
| 
      
 11 
     | 
    
         
            +
                FORMAT = /^[a-f0-9]+$/
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                # The length of the signature in hex format
         
     | 
| 
      
 14 
     | 
    
         
            +
                #
         
     | 
| 
      
 15 
     | 
    
         
            +
                # @return [Integer] The length of the signature in hex format
         
     | 
| 
      
 16 
     | 
    
         
            +
                #
         
     | 
| 
      
 17 
     | 
    
         
            +
                LENGTH = 128
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                # Instantiates a new Signature
         
     | 
| 
      
 20 
     | 
    
         
            +
                #
         
     | 
| 
      
 21 
     | 
    
         
            +
                # @api public
         
     | 
| 
      
 22 
     | 
    
         
            +
                #
         
     | 
| 
      
 23 
     | 
    
         
            +
                # @example Instantiating a new signature
         
     | 
| 
      
 24 
     | 
    
         
            +
                #  Nostr::Signature.new(
         
     | 
| 
      
 25 
     | 
    
         
            +
                #    'f418c97b50cc68227e82f4f3a79d79eb2b7a0fa517859c86e1a8fa91e3741b7f' \
         
     | 
| 
      
 26 
     | 
    
         
            +
                #    '06e070c44129227b83fcbe93cecb02a346804a4080ce47685ecad60ab4f5f128'
         
     | 
| 
      
 27 
     | 
    
         
            +
                #  )
         
     | 
| 
      
 28 
     | 
    
         
            +
                #
         
     | 
| 
      
 29 
     | 
    
         
            +
                # @param [String] hex_value Hex-encoded value of the signature
         
     | 
| 
      
 30 
     | 
    
         
            +
                #
         
     | 
| 
      
 31 
     | 
    
         
            +
                # @raise [SignatureValidationError]
         
     | 
| 
      
 32 
     | 
    
         
            +
                #
         
     | 
| 
      
 33 
     | 
    
         
            +
                def initialize(hex_value)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  validate(hex_value)
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  super(hex_value)
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
                private
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                # Hex-encoded value of the signature
         
     | 
| 
      
 42 
     | 
    
         
            +
                #
         
     | 
| 
      
 43 
     | 
    
         
            +
                # @api private
         
     | 
| 
      
 44 
     | 
    
         
            +
                #
         
     | 
| 
      
 45 
     | 
    
         
            +
                # @return [String] hex_value Hex-encoded value of the signature
         
     | 
| 
      
 46 
     | 
    
         
            +
                #
         
     | 
| 
      
 47 
     | 
    
         
            +
                attr_reader :hex_value
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                # Validates the hex value of the signature
         
     | 
| 
      
 50 
     | 
    
         
            +
                #
         
     | 
| 
      
 51 
     | 
    
         
            +
                # @api private
         
     | 
| 
      
 52 
     | 
    
         
            +
                #
         
     | 
| 
      
 53 
     | 
    
         
            +
                # @param [String] hex_value The signature in hex format
         
     | 
| 
      
 54 
     | 
    
         
            +
                #
         
     | 
| 
      
 55 
     | 
    
         
            +
                # @raise InvalidSignatureTypeError when the signature is not a string
         
     | 
| 
      
 56 
     | 
    
         
            +
                # @raise InvalidSignatureLengthError when the signature's length is not 128 characters
         
     | 
| 
      
 57 
     | 
    
         
            +
                # @raise InvalidSignatureFormatError when the signature is in an invalid format
         
     | 
| 
      
 58 
     | 
    
         
            +
                #
         
     | 
| 
      
 59 
     | 
    
         
            +
                # @return [void]
         
     | 
| 
      
 60 
     | 
    
         
            +
                #
         
     | 
| 
      
 61 
     | 
    
         
            +
                def validate(hex_value)
         
     | 
| 
      
 62 
     | 
    
         
            +
                  raise InvalidSignatureTypeError   unless hex_value.is_a?(String)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  raise InvalidSignatureLengthError unless hex_value.size == LENGTH
         
     | 
| 
      
 64 
     | 
    
         
            +
                  raise InvalidSignatureFormatError unless hex_value.match(FORMAT)
         
     | 
| 
      
 65 
     | 
    
         
            +
                end
         
     | 
| 
      
 66 
     | 
    
         
            +
              end
         
     | 
| 
      
 67 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/nostr/version.rb
    CHANGED
    
    
    
        data/lib/nostr.rb
    CHANGED
    
    | 
         @@ -12,9 +12,12 @@ require_relative 'nostr/relay' 
     | 
|
| 
       12 
12 
     | 
    
         
             
            require_relative 'nostr/relay_message_type'
         
     | 
| 
       13 
13 
     | 
    
         
             
            require_relative 'nostr/key_pair'
         
     | 
| 
       14 
14 
     | 
    
         
             
            require_relative 'nostr/event_kind'
         
     | 
| 
      
 15 
     | 
    
         
            +
            require_relative 'nostr/signature'
         
     | 
| 
       15 
16 
     | 
    
         
             
            require_relative 'nostr/event'
         
     | 
| 
       16 
17 
     | 
    
         
             
            require_relative 'nostr/events/encrypted_direct_message'
         
     | 
| 
       17 
18 
     | 
    
         
             
            require_relative 'nostr/client'
         
     | 
| 
      
 19 
     | 
    
         
            +
            require_relative 'nostr/client/logger'
         
     | 
| 
      
 20 
     | 
    
         
            +
            require_relative 'nostr/client/color_logger'
         
     | 
| 
       18 
21 
     | 
    
         
             
            require_relative 'nostr/user'
         
     | 
| 
       19 
22 
     | 
    
         
             
            require_relative 'nostr/key'
         
     | 
| 
       20 
23 
     | 
    
         
             
            require_relative 'nostr/private_key'
         
     | 
    
        data/nostr.gemspec
    CHANGED
    
    | 
         @@ -12,7 +12,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       12 
12 
     | 
    
         
             
              spec.description = 'Client and relay implementation of the Nostr protocol.'
         
     | 
| 
       13 
13 
     | 
    
         
             
              spec.homepage = 'https://nostr-ruby.com/'
         
     | 
| 
       14 
14 
     | 
    
         
             
              spec.license = 'MIT'
         
     | 
| 
       15 
     | 
    
         
            -
              spec.required_ruby_version = '>= 3. 
     | 
| 
      
 15 
     | 
    
         
            +
              spec.required_ruby_version = '>= 3.3.0'
         
     | 
| 
       16 
16 
     | 
    
         
             
              spec.metadata['rubygems_mfa_required'] = 'true'
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
18 
     | 
    
         
             
              spec.metadata['homepage_uri'] = spec.homepage
         
     | 
| 
         @@ -32,32 +32,32 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       32 
32 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
              spec.add_dependency 'bech32', '~> 1.4'
         
     | 
| 
       35 
     | 
    
         
            -
              spec.add_dependency 'bip-schnorr', '~> 0. 
     | 
| 
      
 35 
     | 
    
         
            +
              spec.add_dependency 'bip-schnorr', '~> 0.7'
         
     | 
| 
       36 
36 
     | 
    
         
             
              spec.add_dependency 'ecdsa', '~> 1.2'
         
     | 
| 
       37 
37 
     | 
    
         
             
              spec.add_dependency 'event_emitter', '~> 0.2'
         
     | 
| 
       38 
38 
     | 
    
         
             
              spec.add_dependency 'faye-websocket', '~> 0.11'
         
     | 
| 
       39 
     | 
    
         
            -
              spec.add_dependency 'json', '~> 2. 
     | 
| 
      
 39 
     | 
    
         
            +
              spec.add_dependency 'json', '~> 2.7'
         
     | 
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
              spec.add_development_dependency 'bundler-audit', '~> 0.9'
         
     | 
| 
       42 
     | 
    
         
            -
              spec.add_development_dependency 'dotenv', '~>  
     | 
| 
      
 42 
     | 
    
         
            +
              spec.add_development_dependency 'dotenv', '~> 3.1'
         
     | 
| 
       43 
43 
     | 
    
         
             
              spec.add_development_dependency 'guard', '~> 2.18'
         
     | 
| 
       44 
44 
     | 
    
         
             
              spec.add_development_dependency 'guard-bundler', '~> 3.0'
         
     | 
| 
       45 
45 
     | 
    
         
             
              spec.add_development_dependency 'guard-bundler-audit', '~> 0.1'
         
     | 
| 
       46 
46 
     | 
    
         
             
              spec.add_development_dependency 'guard-rspec', '~> 4.7'
         
     | 
| 
       47 
47 
     | 
    
         
             
              spec.add_development_dependency 'guard-rubocop', '~> 1.5'
         
     | 
| 
       48 
     | 
    
         
            -
              spec.add_development_dependency 'overcommit', '~> 0. 
     | 
| 
      
 48 
     | 
    
         
            +
              spec.add_development_dependency 'overcommit', '~> 0.63'
         
     | 
| 
       49 
49 
     | 
    
         
             
              spec.add_development_dependency 'pry', '~> 0.14'
         
     | 
| 
       50 
50 
     | 
    
         
             
              spec.add_development_dependency 'puma', '~> 6.4'
         
     | 
| 
       51 
51 
     | 
    
         
             
              spec.add_development_dependency 'rack', '~> 3.0'
         
     | 
| 
       52 
52 
     | 
    
         
             
              spec.add_development_dependency 'rake', '~> 13.1'
         
     | 
| 
       53 
     | 
    
         
            -
              spec.add_development_dependency 'rbs', '~> 3. 
     | 
| 
       54 
     | 
    
         
            -
              spec.add_development_dependency 'rspec', '~> 3. 
     | 
| 
       55 
     | 
    
         
            -
              spec.add_development_dependency 'rubocop', '~> 1. 
     | 
| 
      
 53 
     | 
    
         
            +
              spec.add_development_dependency 'rbs', '~> 3.4'
         
     | 
| 
      
 54 
     | 
    
         
            +
              spec.add_development_dependency 'rspec', '~> 3.13'
         
     | 
| 
      
 55 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop', '~> 1.62'
         
     | 
| 
       56 
56 
     | 
    
         
             
              spec.add_development_dependency 'rubocop-rake', '~> 0.6'
         
     | 
| 
       57 
     | 
    
         
            -
              spec.add_development_dependency 'rubocop-rspec', '2. 
     | 
| 
      
 57 
     | 
    
         
            +
              spec.add_development_dependency 'rubocop-rspec', '2.29'
         
     | 
| 
       58 
58 
     | 
    
         
             
              spec.add_development_dependency 'simplecov', '= 0.17'
         
     | 
| 
       59 
59 
     | 
    
         
             
              spec.add_development_dependency 'simplecov-console', '~> 0.9'
         
     | 
| 
       60 
     | 
    
         
            -
              spec.add_development_dependency 'steep', '~> 1. 
     | 
| 
      
 60 
     | 
    
         
            +
              spec.add_development_dependency 'steep', '~> 1.7.dev3'
         
     | 
| 
       61 
61 
     | 
    
         
             
              spec.add_development_dependency 'typeprof', '~> 0.21'
         
     | 
| 
       62 
62 
     | 
    
         
             
              spec.add_development_dependency 'yard', '~> 0.9'
         
     | 
| 
       63 
63 
     | 
    
         
             
              spec.add_development_dependency 'yard-junk', '~> 0.0.9'
         
     | 
| 
         @@ -0,0 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Nostr
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Client
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Logger
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def attach_to: (Client client) -> void
         
     | 
| 
      
 5 
     | 
    
         
            +
                  def on_connect: (Relay relay) -> void
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def on_message: (String message) -> void
         
     | 
| 
      
 7 
     | 
    
         
            +
                  def on_send: (String message) -> void
         
     | 
| 
      
 8 
     | 
    
         
            +
                  def on_error: (String message) -> void
         
     | 
| 
      
 9 
     | 
    
         
            +
                  def on_close: (String code, String reason) -> void
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
            end
         
     | 
    
        data/sig/nostr/client.rbs
    CHANGED
    
    | 
         @@ -10,11 +10,13 @@ module Nostr 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                private
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
                attr_reader logger: Logger
         
     | 
| 
       13 
14 
     | 
    
         
             
                attr_reader subscriptions: Hash[String, Subscription]
         
     | 
| 
       14 
15 
     | 
    
         
             
                attr_reader parent_to_child_channel: EventMachine::Channel
         
     | 
| 
       15 
16 
     | 
    
         
             
                attr_reader child_to_parent_channel: EventMachine::Channel
         
     | 
| 
       16 
17 
     | 
    
         | 
| 
       17 
18 
     | 
    
         
             
                def execute_within_an_em_thread: { -> void } -> Thread
         
     | 
| 
       18 
19 
     | 
    
         
             
                def initialize_channels: -> void
         
     | 
| 
      
 20 
     | 
    
         
            +
                def build_websocket_client: (String relay_name) -> Faye::WebSocket::Client
         
     | 
| 
       19 
21 
     | 
    
         
             
              end
         
     | 
| 
       20 
22 
     | 
    
         
             
            end
         
     | 
    
        data/sig/nostr/crypto.rbs
    CHANGED
    
    | 
         @@ -7,6 +7,9 @@ module Nostr 
     | 
|
| 
       7 
7 
     | 
    
         
             
                def encrypt_text: (PrivateKey, PublicKey, String) -> String
         
     | 
| 
       8 
8 
     | 
    
         
             
                def decrypt_text: (PrivateKey, PublicKey, String) -> String
         
     | 
| 
       9 
9 
     | 
    
         
             
                def sign_event: (Event, PrivateKey) -> Event
         
     | 
| 
      
 10 
     | 
    
         
            +
                def sign_message: (String, PrivateKey) -> Signature
         
     | 
| 
      
 11 
     | 
    
         
            +
                def valid_sig?: (String, PublicKey, Signature) -> bool
         
     | 
| 
      
 12 
     | 
    
         
            +
                def check_sig!: (String, PublicKey, Signature) -> bool
         
     | 
| 
       10 
13 
     | 
    
         | 
| 
       11 
14 
     | 
    
         
             
                private
         
     | 
| 
       12 
15 
     | 
    
         | 
    
        data/sig/nostr/event.rbs
    CHANGED
    
    | 
         @@ -5,8 +5,8 @@ module Nostr 
     | 
|
| 
       5 
5 
     | 
    
         
             
                attr_reader kind: Integer
         
     | 
| 
       6 
6 
     | 
    
         
             
                attr_reader tags: Array[Array[String]]
         
     | 
| 
       7 
7 
     | 
    
         
             
                attr_reader content: String
         
     | 
| 
       8 
     | 
    
         
            -
                attr_accessor id: String 
     | 
| 
       9 
     | 
    
         
            -
                attr_accessor sig:  
     | 
| 
      
 8 
     | 
    
         
            +
                attr_accessor id: String?
         
     | 
| 
      
 9 
     | 
    
         
            +
                attr_accessor sig: Signature?
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
                def initialize: (
         
     | 
| 
       12 
12 
     | 
    
         
             
                  pubkey: PublicKey,
         
     | 
| 
         @@ -14,24 +14,25 @@ module Nostr 
     | 
|
| 
       14 
14 
     | 
    
         
             
                  content: String,
         
     | 
| 
       15 
15 
     | 
    
         
             
                  ?created_at: Integer,
         
     | 
| 
       16 
16 
     | 
    
         
             
                  ?tags: Array[Array[String]],
         
     | 
| 
       17 
     | 
    
         
            -
                  ?id: String 
     | 
| 
       18 
     | 
    
         
            -
                  ?sig:  
     | 
| 
      
 17 
     | 
    
         
            +
                  ?id: String?,
         
     | 
| 
      
 18 
     | 
    
         
            +
                  ?sig: Signature?
         
     | 
| 
       19 
19 
     | 
    
         
             
                ) -> void
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                def serialize: -> [Integer, String, Integer, Integer, Array[Array[String]], String]
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
                def to_h: -> {
         
     | 
| 
       24 
     | 
    
         
            -
                  id: String 
     | 
| 
      
 24 
     | 
    
         
            +
                  id: String?,
         
     | 
| 
       25 
25 
     | 
    
         
             
                  pubkey: String,
         
     | 
| 
       26 
26 
     | 
    
         
             
                  created_at: Integer,
         
     | 
| 
       27 
27 
     | 
    
         
             
                  kind: Integer,
         
     | 
| 
       28 
28 
     | 
    
         
             
                  tags: Array[Array[String]],
         
     | 
| 
       29 
29 
     | 
    
         
             
                  content: String,
         
     | 
| 
       30 
     | 
    
         
            -
                  sig: String 
     | 
| 
      
 30 
     | 
    
         
            +
                  sig: String?
         
     | 
| 
       31 
31 
     | 
    
         
             
                }
         
     | 
| 
       32 
32 
     | 
    
         
             
                def ==: (Event other) -> bool
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                def sign:(PrivateKey) -> Event
         
     | 
| 
      
 35 
     | 
    
         
            +
                def verify_signature: -> bool
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
37 
     | 
    
         
             
                def add_event_reference: (String) -> Array[Array[String]]
         
     | 
| 
       37 
38 
     | 
    
         
             
                def add_pubkey_reference: (PublicKey) -> Array[Array[String]]
         
     | 
    
        data/sig/nostr/key_pair.rbs
    CHANGED
    
    
| 
         @@ -1,16 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Added only to satisfy the Steep requirements. Not 100% reliable.
         
     | 
| 
       2 
2 
     | 
    
         
             
            module EventEmitter
         
     | 
| 
       3 
     | 
    
         
            -
               
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
                def message: -> String
         
     | 
| 
       6 
     | 
    
         
            -
                def code: -> Integer
         
     | 
| 
       7 
     | 
    
         
            -
                def reason: -> String
         
     | 
| 
       8 
     | 
    
         
            -
              end
         
     | 
| 
      
 3 
     | 
    
         
            +
              def self.included: (Module) -> void
         
     | 
| 
      
 4 
     | 
    
         
            +
              def self.apply: (untyped) -> void
         
     | 
| 
       9 
5 
     | 
    
         | 
| 
       10 
     | 
    
         
            -
              def  
     | 
| 
      
 6 
     | 
    
         
            +
              def __events: () -> Array[untyped]
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
              def add_listener: (Symbol | String type, ?Hash[untyped, untyped] params) { (*untyped) -> void } -> Integer
         
     | 
| 
       11 
9 
     | 
    
         
             
              alias on add_listener
         
     | 
| 
      
 10 
     | 
    
         
            +
              alias once add_listener
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
              def remove_listener: ( 
     | 
| 
       14 
     | 
    
         
            -
              def emit: (Symbol  
     | 
| 
       15 
     | 
    
         
            -
              def once: (Symbol `type`) -> Integer
         
     | 
| 
      
 12 
     | 
    
         
            +
              def remove_listener: (Integer | Symbol | String id_or_type) -> void
         
     | 
| 
      
 13 
     | 
    
         
            +
              def emit: (Symbol | String type, *untyped data) -> void
         
     | 
| 
       16 
14 
     | 
    
         
             
            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.7.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-04-13 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bech32
         
     | 
| 
         @@ -30,14 +30,14 @@ dependencies: 
     | 
|
| 
       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
         
     | 
| 
         @@ -86,14 +86,14 @@ dependencies: 
     | 
|
| 
       86 
86 
     | 
    
         
             
                requirements:
         
     | 
| 
       87 
87 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       88 
88 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       89 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 89 
     | 
    
         
            +
                    version: '2.7'
         
     | 
| 
       90 
90 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       91 
91 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       92 
92 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       93 
93 
     | 
    
         
             
                requirements:
         
     | 
| 
       94 
94 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       95 
95 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       96 
     | 
    
         
            -
                    version: '2. 
     | 
| 
      
 96 
     | 
    
         
            +
                    version: '2.7'
         
     | 
| 
       97 
97 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       98 
98 
     | 
    
         
             
              name: bundler-audit
         
     | 
| 
       99 
99 
     | 
    
         
             
              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
         
     | 
| 
         @@ -268,42 +268,42 @@ dependencies: 
     | 
|
| 
       268 
268 
     | 
    
         
             
                requirements:
         
     | 
| 
       269 
269 
     | 
    
         
             
                - - "~>"
         
     | 
| 
       270 
270 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       271 
     | 
    
         
            -
                    version: '3. 
     | 
| 
      
 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: '3. 
     | 
| 
      
 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.29'
         
     | 
| 
       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.29'
         
     | 
| 
       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:  
     | 
| 
      
 369 
     | 
    
         
            +
                    version: 1.7.dev3
         
     | 
| 
       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:  
     | 
| 
      
 376 
     | 
    
         
            +
                    version: 1.7.dev3
         
     | 
| 
       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,12 +453,20 @@ 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 
     | 
    
         
            +
            - adr/0003-logging-methods-vs-logger-class.md
         
     | 
| 
      
 459 
     | 
    
         
            +
            - adr/0004-default-logging-activation.md
         
     | 
| 
      
 460 
     | 
    
         
            +
            - adr/0005-logger-types.md
         
     | 
| 
       455 
461 
     | 
    
         
             
            - docs/.gitignore
         
     | 
| 
       456 
462 
     | 
    
         
             
            - docs/.vitepress/config.mjs
         
     | 
| 
       457 
463 
     | 
    
         
             
            - docs/README.md
         
     | 
| 
       458 
464 
     | 
    
         
             
            - docs/api-examples.md
         
     | 
| 
       459 
465 
     | 
    
         
             
            - docs/bun.lockb
         
     | 
| 
       460 
466 
     | 
    
         
             
            - docs/common-use-cases/bech32-encoding-and-decoding-(NIP-19).md
         
     | 
| 
      
 467 
     | 
    
         
            +
            - docs/common-use-cases/logging-and-debugging.md
         
     | 
| 
      
 468 
     | 
    
         
            +
            - docs/common-use-cases/signing-and-verifying-events.md
         
     | 
| 
      
 469 
     | 
    
         
            +
            - docs/common-use-cases/signing-and-verifying-messages.md
         
     | 
| 
       461 
470 
     | 
    
         
             
            - docs/core/client.md
         
     | 
| 
       462 
471 
     | 
    
         
             
            - docs/core/keys.md
         
     | 
| 
       463 
472 
     | 
    
         
             
            - docs/core/user.md
         
     | 
| 
         @@ -483,6 +492,9 @@ files: 
     | 
|
| 
       483 
492 
     | 
    
         
             
            - lib/nostr.rb
         
     | 
| 
       484 
493 
     | 
    
         
             
            - lib/nostr/bech32.rb
         
     | 
| 
       485 
494 
     | 
    
         
             
            - lib/nostr/client.rb
         
     | 
| 
      
 495 
     | 
    
         
            +
            - lib/nostr/client/color_logger.rb
         
     | 
| 
      
 496 
     | 
    
         
            +
            - lib/nostr/client/logger.rb
         
     | 
| 
      
 497 
     | 
    
         
            +
            - lib/nostr/client/plain_logger.rb
         
     | 
| 
       486 
498 
     | 
    
         
             
            - lib/nostr/client_message_type.rb
         
     | 
| 
       487 
499 
     | 
    
         
             
            - lib/nostr/crypto.rb
         
     | 
| 
       488 
500 
     | 
    
         
             
            - lib/nostr/errors.rb
         
     | 
| 
         @@ -491,7 +503,11 @@ files: 
     | 
|
| 
       491 
503 
     | 
    
         
             
            - lib/nostr/errors/invalid_key_format_error.rb
         
     | 
| 
       492 
504 
     | 
    
         
             
            - lib/nostr/errors/invalid_key_length_error.rb
         
     | 
| 
       493 
505 
     | 
    
         
             
            - lib/nostr/errors/invalid_key_type_error.rb
         
     | 
| 
      
 506 
     | 
    
         
            +
            - lib/nostr/errors/invalid_signature_format_error.rb
         
     | 
| 
      
 507 
     | 
    
         
            +
            - lib/nostr/errors/invalid_signature_length_error.rb
         
     | 
| 
      
 508 
     | 
    
         
            +
            - lib/nostr/errors/invalid_signature_type_error.rb
         
     | 
| 
       494 
509 
     | 
    
         
             
            - lib/nostr/errors/key_validation_error.rb
         
     | 
| 
      
 510 
     | 
    
         
            +
            - lib/nostr/errors/signature_validation_error.rb
         
     | 
| 
       495 
511 
     | 
    
         
             
            - lib/nostr/event.rb
         
     | 
| 
       496 
512 
     | 
    
         
             
            - lib/nostr/event_kind.rb
         
     | 
| 
       497 
513 
     | 
    
         
             
            - lib/nostr/events/encrypted_direct_message.rb
         
     | 
| 
         @@ -503,6 +519,7 @@ files: 
     | 
|
| 
       503 
519 
     | 
    
         
             
            - lib/nostr/public_key.rb
         
     | 
| 
       504 
520 
     | 
    
         
             
            - lib/nostr/relay.rb
         
     | 
| 
       505 
521 
     | 
    
         
             
            - lib/nostr/relay_message_type.rb
         
     | 
| 
      
 522 
     | 
    
         
            +
            - lib/nostr/signature.rb
         
     | 
| 
       506 
523 
     | 
    
         
             
            - lib/nostr/subscription.rb
         
     | 
| 
       507 
524 
     | 
    
         
             
            - lib/nostr/user.rb
         
     | 
| 
       508 
525 
     | 
    
         
             
            - lib/nostr/version.rb
         
     | 
| 
         @@ -510,6 +527,9 @@ files: 
     | 
|
| 
       510 
527 
     | 
    
         
             
            - sig/nostr.rbs
         
     | 
| 
       511 
528 
     | 
    
         
             
            - sig/nostr/bech32.rbs
         
     | 
| 
       512 
529 
     | 
    
         
             
            - sig/nostr/client.rbs
         
     | 
| 
      
 530 
     | 
    
         
            +
            - sig/nostr/client/color_logger.rbs
         
     | 
| 
      
 531 
     | 
    
         
            +
            - sig/nostr/client/logger.rbs
         
     | 
| 
      
 532 
     | 
    
         
            +
            - sig/nostr/client/plain_logger.rbs
         
     | 
| 
       513 
533 
     | 
    
         
             
            - sig/nostr/client_message_type.rbs
         
     | 
| 
       514 
534 
     | 
    
         
             
            - sig/nostr/crypto.rbs
         
     | 
| 
       515 
535 
     | 
    
         
             
            - sig/nostr/errors/error.rbs
         
     | 
| 
         @@ -517,7 +537,11 @@ files: 
     | 
|
| 
       517 
537 
     | 
    
         
             
            - sig/nostr/errors/invalid_key_format_error.rbs
         
     | 
| 
       518 
538 
     | 
    
         
             
            - sig/nostr/errors/invalid_key_length_error.rbs
         
     | 
| 
       519 
539 
     | 
    
         
             
            - sig/nostr/errors/invalid_key_type_error.rbs
         
     | 
| 
      
 540 
     | 
    
         
            +
            - sig/nostr/errors/invalid_signature_format_error.rbs
         
     | 
| 
      
 541 
     | 
    
         
            +
            - sig/nostr/errors/invalid_signature_length_error.rbs
         
     | 
| 
      
 542 
     | 
    
         
            +
            - sig/nostr/errors/invalid_signature_type_error.rbs
         
     | 
| 
       520 
543 
     | 
    
         
             
            - sig/nostr/errors/key_validation_error.rbs
         
     | 
| 
      
 544 
     | 
    
         
            +
            - sig/nostr/errors/signature_validation_error.rbs
         
     | 
| 
       521 
545 
     | 
    
         
             
            - sig/nostr/event.rbs
         
     | 
| 
       522 
546 
     | 
    
         
             
            - sig/nostr/event_kind.rbs
         
     | 
| 
       523 
547 
     | 
    
         
             
            - sig/nostr/events/encrypted_direct_message.rbs
         
     | 
| 
         @@ -529,6 +553,7 @@ files: 
     | 
|
| 
       529 
553 
     | 
    
         
             
            - sig/nostr/public_key.rbs
         
     | 
| 
       530 
554 
     | 
    
         
             
            - sig/nostr/relay.rbs
         
     | 
| 
       531 
555 
     | 
    
         
             
            - sig/nostr/relay_message_type.rbs
         
     | 
| 
      
 556 
     | 
    
         
            +
            - sig/nostr/signature.rbs
         
     | 
| 
       532 
557 
     | 
    
         
             
            - sig/nostr/subscription.rbs
         
     | 
| 
       533 
558 
     | 
    
         
             
            - sig/nostr/user.rbs
         
     | 
| 
       534 
559 
     | 
    
         
             
            - sig/vendor/bech32.rbs
         
     | 
| 
         @@ -543,6 +568,7 @@ files: 
     | 
|
| 
       543 
568 
     | 
    
         
             
            - sig/vendor/faye/websocket/api.rbs
         
     | 
| 
       544 
569 
     | 
    
         
             
            - sig/vendor/faye/websocket/client.rbs
         
     | 
| 
       545 
570 
     | 
    
         
             
            - sig/vendor/schnorr.rbs
         
     | 
| 
      
 571 
     | 
    
         
            +
            - sig/vendor/schnorr/signature.rbs
         
     | 
| 
       546 
572 
     | 
    
         
             
            homepage: https://nostr-ruby.com/
         
     | 
| 
       547 
573 
     | 
    
         
             
            licenses:
         
     | 
| 
       548 
574 
     | 
    
         
             
            - MIT
         
     | 
| 
         @@ -559,14 +585,14 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       559 
585 
     | 
    
         
             
              requirements:
         
     | 
| 
       560 
586 
     | 
    
         
             
              - - ">="
         
     | 
| 
       561 
587 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       562 
     | 
    
         
            -
                  version: 3. 
     | 
| 
      
 588 
     | 
    
         
            +
                  version: 3.3.0
         
     | 
| 
       563 
589 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       564 
590 
     | 
    
         
             
              requirements:
         
     | 
| 
       565 
591 
     | 
    
         
             
              - - ">="
         
     | 
| 
       566 
592 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       567 
593 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       568 
594 
     | 
    
         
             
            requirements: []
         
     | 
| 
       569 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 595 
     | 
    
         
            +
            rubygems_version: 3.5.6
         
     | 
| 
       570 
596 
     | 
    
         
             
            signing_key:
         
     | 
| 
       571 
597 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       572 
598 
     | 
    
         
             
            summary: Client and relay implementation of the Nostr protocol.
         
     |