Deluan
32bae38ffd
feat: introduce ArtistRef struct for better artist representation and update track metadata handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-14 10:36:47 -05:00
Deluan
f8ea65dbc8
refactor: make MockPDK private
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
68b4e2052c
feat: conditionally include error handling in generated client code templates
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:08 -05:00
Deluan
363177e1d4
feat: add PDK abstraction layer with mock support for non-WASM builds
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
93e9f12685
feat: implement mock service instances for non-WASM builds using testify/mock
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
89d9aa1434
feat(plugins): implement XTP JSONSchema validation for generated schemas
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
aa03d53524
test(plugins): add unit tests for rustOutputType and isPrimitiveRustType functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
e750bf8232
fix(plugins): enhance type handling for Rust and XTP output in capability generation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
37473a7096
fix(plugins): generate host wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
633a26a273
refactor(plugins): update export wrappers to use //go:wasmexport for WebAssembly compatibility
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
06c2556a8f
refactor(plugins): rename scheduler callback methods for consistency and clarity
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
53aa1a67ee
refactor(plugins): update macro names for websocket and metadata registration to improve clarity and consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
2b2b673581
refactor(plugins): reorganize Rust output structure to follow standard conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
e2d0c5626c
feat: implement Rust PDK
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
c19ce124d5
refactor(plugins): consolidate PDK module path and update Go version to 1.25
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
3d14349b99
refactor(plugins): update request/response types to use private naming conventions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
810ee687fa
refactor(plugins): update function signatures to return values directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
312a31f688
refactor(plugins): update error handling for methods to return errors directly
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
723b19c8de
refactor(plugins): reorganize and sort type definitions for consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
9ac0764cc2
refactor(plugins): update scrobbler interface to return errors directly instead of response structs
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:07 -05:00
Deluan
306b2fc525
refactor(plugins): streamline plugin function signatures and error handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
d81e641cc6
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>
2026-01-12 08:16:06 -05:00
Deluan
0fb497ed73
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>
2026-01-12 08:16:06 -05:00
Deluan
b4b7b91cf7
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>
2026-01-12 08:16:06 -05:00
Deluan
05455de90b
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>
2026-01-12 08:16:06 -05:00
Deluan
80e134420c
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>
2026-01-12 08:16:06 -05:00
Deluan
4e0cd7571b
feat(plugins): add initial implementation of the Navidrome Plugin Development Kit code generator - Pahse 1
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
4f9d0a5016
feat(plugins): update client template file names for consistency
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
bbb1596b4b
feat(plugins): generate Go client stubs for non-WASM platforms
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
1d18b3a092
feat(plugins): add Go client library with host function wrappers and documentation
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
b8ff660485
feat(plugins): enhance Rust code generation with typed struct support and improved type handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
d5458fb16d
refactor: reduce cyclomatic complexity by refactoring main function
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
7afe906d11
feat(plugins): generate Rust lib.rs file to expose host function wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
de45079ff6
feat(plugins): add Rust host function library and example implementation of Discord Rich Presence plugin in Rust
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
8b16065981
refactor(plugins): break manager.go into smaller, focused files
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:06 -05:00
Deluan
d8cc4d57eb
feat: update Python plugin documentation and usage instructions for host function wrappers
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
e2ab381cac
feat: generate Python client wrappers for various host services
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:05 -05:00
Deluan
5deedbe341
refactor: error handling in various plugins to convert response.Error to Go errors
...
- Updated error handling in `nd_host_scheduler.go`, `nd_host_websocket.go`, `nd_host_artwork.go`, `nd_host_cache.go`, and `nd_host_subsonicapi.go` to convert string errors from responses into Go errors.
- Removed redundant error checks in test data plugins for cleaner code.
- Ensured consistent error handling across all plugins to improve reliability and maintainability.
2026-01-12 08:16:05 -05:00
Deluan
693ce7d280
refactor: host function wrappers to use structured request and response types
...
- Updated the host function signatures in `nd_host_artwork.go`, `nd_host_scheduler.go`, `nd_host_subsonicapi.go`, and `nd_host_websocket.go` to accept a single parameter for JSON requests.
- Introduced structured request and response types for various cache operations in `nd_host_cache.go`.
- Modified cache functions to marshal requests to JSON and unmarshal responses, improving error handling and code clarity.
- Removed redundant memory allocation for string parameters in favor of JSON marshaling.
- Enhanced error handling in WebSocket and cache operations to return structured error responses.
2026-01-12 08:16:05 -05:00
Deluan
9e3f03a3b2
feat(plugins): add WASI build constraints to client wrapper templates, to avoid lint errors
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:04 -05:00
Deluan
3faa554935
refactor(generator): remove error handling for response.Error in client templates
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:04 -05:00
Deluan
17b7c0de89
feat(plugins): generate client wrappers for host functions
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:04 -05:00
Deluan
aba6842bfa
fix(generator): error-only methods in response handling
...
Signed-off-by: Deluan <deluan@navidrome.org>
2026-01-12 08:16:04 -05:00
Deluan
5769b25add
feat(hostgen): add hostgen tool for generating Extism host function wrappers
...
- Implemented hostgen tool to generate wrappers from annotated Go interfaces.
- Added command-line flags for input/output directories and package name.
- Introduced parsing and code generation logic for host services.
- Created test data for various service interfaces and expected generated code.
- Added documentation for host services and annotations for code generation.
- Implemented SubsonicAPI service with corresponding generated code.
2026-01-12 08:16:04 -05:00