160 Commits

Author SHA1 Message Date
Deluan
3dba572ce7 refactor: rename List method to Keys for clarity in configuration management
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 14:08:26 -05:00
Deluan
d0482ec9ac refactor: make MockPDK private
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 00:59:35 -05:00
Deluan
7b1126201e feat: enhance plugin manager to support metrics recording
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-02 00:41:33 -05:00
Deluan
b90ecb9754 feat: implement ConfigService for plugin configuration management
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 19:56:33 -05:00
Deluan
4b66560f50 feat: conditionally include error handling in generated client code templates
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 19:53:07 -05:00
Deluan
20ae227bd3 fix: context cancellation and implement WebSocket callback timeout for improved error handling
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:52:16 -05:00
Deluan
b35928e598 fix: update return types in minimalPlugin and wikimediaPlugin methods to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:24:54 -05:00
Deluan
3c83c44dc7 feat: add unit tests for Discord plugin and RPC functionality
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 17:15:35 -05:00
Deluan
9522b060d5 feat: add PDK abstraction layer with mock support for non-WASM builds
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 15:44:32 -05:00
Deluan
c6fe02a49c feat: add support for experimental WebAssembly threads
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-01 13:19:52 -05:00
Deluan
a2ace6e84e refactor: Discord RPC struct to encapsulate WebSocket logic
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 21:02:01 -05:00
Deluan
e111c5832f feat: implement mock service instances for non-WASM builds using testify/mock
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 19:34:14 -05:00
Deluan
aa207fb521 docs: update README to include Rust PDK crate information for plugin developers
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e2f64880e6 docs: clarify artwork URL generation capabilities in service descriptions
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
69ded80806 docs: correct example link for library inspector in README
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
477cec93a9 docs: update Go and Rust plugin developer sections for clarity
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
7b0db4f8d6 fix(plugins): update response types in testMetadataAgent methods to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ad9cda9d57 feat(plugins): implement XTP JSONSchema validation for generated schemas
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e3bfcff8c4 test(plugins): add unit tests for rustOutputType and isPrimitiveRustType functions
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
6698e94a9c fix(plugins): update IsAuthorized method to return boolean instead of response object
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
6fff476e93 fix(plugins): enhance type handling for Rust and XTP output in capability generation
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e6b0af63ce fix(plugins): update return types in metadata interfaces to use pointers
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
d6b412acde refactor(plugins): update plugin instance creation to accept context for cancellation support
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
8d586f7425 docs: update README to reflect changes in plugin import paths
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
dc5100e56a fix(plugins): generate host wrappers
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4678da1e5b docs: update plugin registration docs
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
1fc1a667f1 refactor(plugins): update export wrappers to use //go:wasmexport for WebAssembly compatibility
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
59085145f5 refactor(plugins): rename scheduler callback methods for consistency and clarity
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
e6e2582abf refactor(plugins): update macro names for websocket and metadata registration to improve clarity and consistency
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
06d75476f6 refactor(plugins): update Discord Rich Presence and Library Inspector plugins to use nd-pdk for service calls and implement lifecycle management
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4f260c058d refactor(plugins): reorganize Rust output structure to follow standard conventions
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
67ab3dc81a feat: implement Rust PDK
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ae41164c1f refactor(plugins): consolidate PDK module path and update Go version to 1.25
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
4ea54fe176 build: mark .wasm files as intermediate for cleanup after building .ndp
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:33 -05:00
Deluan
ca36c5df13 refactor(plugins): update request/response types to use private naming conventions
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
7cad08ad09 refactor(plugins): update function signatures to return values directly instead of response structs
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
11d99ef673 refactor(plugins): update error handling for methods to return errors directly
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6ee64ceeec refactor(plugins): reorganize and sort type definitions for consistency
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
f221c01bd9 test: make all test plugins use the PDK
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
f1b85e6a19 refactor(plugins): update scrobbler interface to return errors directly instead of response structs
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
d43724c571 refactor(plugins): streamline plugin function signatures and error handling
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
301b2c850c refactor(plugins): consistent naming/types across PDK
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
547363eab7 feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 5
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
8a453cb22c feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 4
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
2e716ed780 feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 3
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6d3c29912b feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 2 (2)
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
6fa9ef0dfe feat(plugins): implementation of the Navidrome Plugin Development Kit with generated client wrappers and service interfaces - Phase 2
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
ebba3a2c46 feat(plugins): add initial implementation of the Navidrome Plugin Development Kit code generator - Pahse 1
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
7b36fcbaa1 feat(plugins): update client template file names for consistency
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00
Deluan
cd3ee136f4 feat(plugins): generate Go client stubs for non-WASM platforms
Signed-off-by: Deluan <deluan@navidrome.org>
2025-12-31 17:06:32 -05:00