Refactor Nostr Client and Update Dependencies

- Replaced NDKPrivateKeySigner with PrivateKeySigner from applesauce-signers for improved signing functionality.
- Updated the Nostr client implementation to utilize nostr-tools for event management and connection pooling.
- Enhanced event fetching logic to support multiple versions of replaceable events based on limit parameters.
- Updated package dependencies in package.json and bun.lock, including the addition of applesauce-core and applesauce-signers.
- Refined event kind definitions and improved documentation for clarity and consistency with NIP specifications.
- Adjusted CSS styles in bundle.css for better visual consistency across components.
This commit is contained in:
2025-10-25 17:27:25 +01:00
parent badac55813
commit c5ff2c648c
13 changed files with 901 additions and 1436 deletions

View File

@@ -201,33 +201,13 @@ func (l *Listener) HandleReq(msg []byte) (err error) {
// Process this chunk
var chunkEvents event.S
showAllVersions := false
if chunkFilter.Tags != nil {
if showAllTag := chunkFilter.Tags.GetFirst([]byte("show_all_versions")); showAllTag != nil {
if string(showAllTag.Value()) == "true" {
showAllVersions = true
}
}
}
if showAllVersions {
if chunkEvents, err = l.QueryAllVersions(queryCtx, chunkFilter); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryAllVersions failed for chunk filter: %v", err)
err = nil
continue
}
} else {
if chunkEvents, err = l.QueryEvents(queryCtx, chunkFilter); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryEvents failed for chunk filter: %v", err)
err = nil
continue
if chunkEvents, err = l.QueryEvents(queryCtx, chunkFilter); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryEvents failed for chunk filter: %v", err)
err = nil
continue
}
// Add chunk results to overall results
@@ -250,35 +230,13 @@ func (l *Listener) HandleReq(msg []byte) (err error) {
}
}
var filterEvents event.S
// Check if the filter has the special "show_all_versions" tag
showAllVersions := false
if f.Tags != nil {
if showAllTag := f.Tags.GetFirst([]byte("show_all_versions")); showAllTag != nil {
if string(showAllTag.Value()) == "true" {
showAllVersions = true
log.T.F("REQ %s: detected show_all_versions tag, using QueryAllVersions", env.Subscription)
}
}
}
if showAllVersions {
if filterEvents, err = l.QueryAllVersions(queryCtx, f); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryAllVersions failed for filter: %v", err)
err = nil
continue
}
} else {
if filterEvents, err = l.QueryEvents(queryCtx, f); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryEvents failed for filter: %v", err)
err = nil
continue
if filterEvents, err = l.QueryEvents(queryCtx, f); chk.E(err) {
if errors.Is(err, badger.ErrDBClosed) {
return
}
log.E.F("QueryEvents failed for filter: %v", err)
err = nil
continue
}
// Append events from this filter to the overall collection
allEvents = append(allEvents, filterEvents...)