Skip to content

feat(search): add searchByMemo full-text search (closes #614) - #810

Open
ZacLou wants to merge 2 commits into
Stellar-split:mainfrom
ZacLou:feat/search-by-memo-614
Open

feat(search): add searchByMemo full-text search (closes #614)#810
ZacLou wants to merge 2 commits into
Stellar-split:mainfrom
ZacLou:feat/search-by-memo-614

Conversation

@ZacLou

@ZacLou ZacLou commented Sep 4, 2026

Copy link
Copy Markdown

Implements searchByMemo in src/search.ts and exports it from src/index.ts.

  • Substring match on invoice.memo, case-insensitive by default.
  • opts.caseSensitive: true enables exact-case matching.
  • Empty query returns all invoices unchanged.
  • Invoices with undefined/null memo are skipped.
  • Adds 5 Vitest tests covering all acceptance criteria.

Closes #614

ZacLou added 2 commits September 6, 2026 02:08
…it#612)

- generateIdempotencyKey: deterministic SHA-256 hex key from invoiceId, payer, amount
- isKnownKey / registerKey / clearKeys: in-memory Set-backed registry
- Exported from index.ts alongside existing Deduplicator
- Unit tests: determinism, input sensitivity, nonce variation, registry lifecycle

Closes Stellar-split#612
…#614)

- searchByMemo(invoices, query, opts?) filters invoices by memo substring
- case-insensitive by default; opts.caseSensitive=true for exact case
- empty query returns all invoices unchanged
- invoices with undefined/null memo are skipped without error
- 6 unit tests covering all acceptance criteria

Closes Stellar-split#614
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add searchByMemo full-text search to search.ts

1 participant