nostr-gem/CHANGELOG.md
2023-11-20 21:43:01 +07:00

3.9 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased

Fixed

  • Fixed YARD example rendering issues in InvalidKeyFormatError#initialize, InvalidKeyLengthError#initialize, InvalidKeyTypeError#initialize, Event#initialize, EncryptedDirectMessage#initialize and Filter#to_h

0.5.0 2023-11-20

Added

  • Added relay message type enums Nostr::RelayMessageType
  • Compliance with NIP-19 - bech32-formatted strings
  • Nostr::PrivateKey and Nostr::PublicKey to represent private and public keys, respectively
  • Added a validation of private and public keys
  • Added an ability to convert keys to and from Bech32 format
  • Added RBS types for faye-websocket and bech32

Changed

  • Set the gem's homepage to https://nostr-ruby.com/
  • Updated the filter's documentation to reflect the removal of prefix matching
  • Updated the subscription's id documentation to reflect the changes in the protocol definition
  • Updated Nostr::PrivateKey and Nostr::PublicKey internally, instead of Strings
  • Updated the gem bip-schnorr to version 0.6 (was 0.4)
  • Updated the gem puma to version 6.4 (was 6.3)
  • Updated the gem rake to version 13.1 (was 13.0)
  • Updated the gem rbs to version 3.3 (was 2.8)
  • Updated the gem rubocop to version 1.57 (was 1.42)
  • Updated the gem rubocop-rspec to version 2.25 (was 2.16)
  • Updated the gem steep to version 1.6 (was 1.4)

Fixed

  • Fixed the RBS type of the constant Nostr::Crypto::BN_BASE
  • Fixed the return type of Nostr::Crypto#decrypt_text when given an invalid ciphertext
  • Fixed the RBS type of Nostr::Filter#to_h, Nostr::Filter#e and Nostr::Filter#p
  • Fixed the RBS types of EventEmitter and EventMachine::Channel
  • Fixed the generation of private keys

0.4.0 - 2023-02-25

Removed

  • Removed EventFragment class. The Event class is no longer a Value Object. In other words, it is no longer immutable and it may be invalid by not having attributes id or sig. The EventFragment abstraction, along with the principles of immutability and was a major source of internal complexity as I needed to scale the codebase.

Added

  • Client compliance with NIP-04 (encrypted direct messages)
  • Extracted the cryptographic concerns into a Crypto class.
  • Added the setters Event#id= and Event#sig=
  • Added a method on the event class to sign events (Event#sign)
  • Added a missing test for EventKind::CONTACT_LIST
  • Added two convenience methods to append event and pubkey references to an event's tags add_event_reference and add_pubkey_reference

Fixed

  • Fixed the generation of public keys
  • Fixed the RBS signature of User#create_event

0.3.0 - 2023-02-15

Added

  • Client compliance wth NIP-02 (manage contact lists)
  • RBS type checking using Steep and TypeProf

Fixed

  • Fixed a documentation typo
  • Fixed a documentation error regarding the receiving of messages via websockets

0.2.0 - 2023-01-12

Added

0.1.0 - 2023-01-06

  • Initial release