Copy protobuf specs from status-go, make necessary adjustments for use via
nim-protobuf-serialization. Many thanks to @richard-ramos for his help with
this aspect and others!
Implement "first steps" towards encoding and decoding Status payloads when
sending and receiving messages.
That consists of using an incomplete
`ProtocolMessage(ApplicationMetadataMessage(ChatMessage)))` wrapping of
messages, assuming all messages currently being sent correspond to public
chats. It's incomplete because there are many fields for which values are not
being derived, and there is no encryption performed.
A series of future pull requests will fill in the missing pieces and expand our
usage of the protobuf specs, i.e. allow nim-status to send and receive more
kinds of Status messages.
Note that the waku v2 content topics are not yet using a hash of the
user-supplied topic name; that will also be addressed in a future pull request.
It's also important to note that a refactor is pending re: moving the import
and usage of nim-waku inside the `nim_status` library, as well refactorings re:
exception handling, imports and exports, and other aspects that have been
commented upon in other recent pull requests. This commit builds on the work
done to date in the same way as before, but there is already awareness of what
should be changed and can be improved.
Ensure that joined waku v2 content topics (whether joined in the TUI or
specified on the command-line) conform to the recommendations in
[23/WAKU2-TOPICS](https://rfc.vac.dev/spec/23/).
Unrelated to the main focus of this commit: use a fixed-length array instead of
a sequence for collecting bytes of user input (keyboard and mouse) in the
`input` worker thread. It's more efficient to do it that way: less allocation
and garbage collection.
---
Closes#217.
* feat: migrations
* Verify if there are more migrations executed in the db than in the code
* fix - code review
* fix: missing text
* test: cat content of sql_scripts.nim
* fix: unwanted stdout/stderr in sql_scripts.nim
Co-authored-by: Michael Bradley, Jr <michaelsbradleyjr@gmail.com>
Support getting row data by column name.
fix: change intVal of 0 to false, combine bool type tests
fix: try forcing val to be read through toOption
feat: handle bool option conversion
feat: switch from using a custom `toOption` proc to using the `fromDbValue` procs defined in nim-sqlcipher. The `fromDbValue` overload that creates `Option[T]` was changed so that we can handle cases when we have null values for `sqliteText` and `sqliteInteger`.
Support typecasting a row (seq[DbColumn]) in to an object type.
Update to execQuery, remove need to cast row
chore: bump nim-sqlcipher
The original intention was to use `newFuture` of nim-chronos but mixing use of
futures and `setSignalEventCallback` proved problematic so use a while/sleep
loop instead.