mirror of
https://github.com/navidrome/navidrome.git
synced 2025-07-14 15:41:18 +03:00
* chore: .gitignore any navidrome binary Signed-off-by: Deluan <deluan@navidrome.org> * feat: implement internal authentication handling in middleware Signed-off-by: Deluan <deluan@navidrome.org> * feat(manager): add SubsonicRouter to Manager for API routing Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): add SubsonicAPI Host service for plugins and an example plugin Signed-off-by: Deluan <deluan@navidrome.org> * fix lint Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): refactor path handling in SubsonicAPI to extract endpoint correctly Signed-off-by: Deluan <deluan@navidrome.org> * docs(plugins): add SubsonicAPI service documentation to README Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): implement permission checks for SubsonicAPI service Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): enhance SubsonicAPI service initialization with atomic router handling Signed-off-by: Deluan <deluan@navidrome.org> * refactor(plugins): better encapsulated dependency injection Signed-off-by: Deluan <deluan@navidrome.org> * refactor(plugins): rename parameter in WithInternalAuth for clarity Signed-off-by: Deluan <deluan@navidrome.org> * docs(plugins): update SubsonicAPI permissions section in README for clarity and detail Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): enhance SubsonicAPI permissions output with allowed usernames and admin flag Signed-off-by: Deluan <deluan@navidrome.org> * feat(plugins): add schema reference to example plugins Signed-off-by: Deluan <deluan@navidrome.org> * remove import alias Signed-off-by: Deluan <deluan@navidrome.org> --------- Signed-off-by: Deluan <deluan@navidrome.org>
67 lines
1.6 KiB
Go
67 lines
1.6 KiB
Go
//go:build !wasip1
|
|
|
|
// Code generated by protoc-gen-go-plugin. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go-plugin v0.1.0
|
|
// protoc v5.29.3
|
|
// source: host/subsonicapi/subsonicapi.proto
|
|
|
|
package subsonicapi
|
|
|
|
import (
|
|
context "context"
|
|
wasm "github.com/knqyf263/go-plugin/wasm"
|
|
wazero "github.com/tetratelabs/wazero"
|
|
api "github.com/tetratelabs/wazero/api"
|
|
)
|
|
|
|
const (
|
|
i32 = api.ValueTypeI32
|
|
i64 = api.ValueTypeI64
|
|
)
|
|
|
|
type _subsonicAPIService struct {
|
|
SubsonicAPIService
|
|
}
|
|
|
|
// Instantiate a Go-defined module named "env" that exports host functions.
|
|
func Instantiate(ctx context.Context, r wazero.Runtime, hostFunctions SubsonicAPIService) error {
|
|
envBuilder := r.NewHostModuleBuilder("env")
|
|
h := _subsonicAPIService{hostFunctions}
|
|
|
|
envBuilder.NewFunctionBuilder().
|
|
WithGoModuleFunction(api.GoModuleFunc(h._Call), []api.ValueType{i32, i32}, []api.ValueType{i64}).
|
|
WithParameterNames("offset", "size").
|
|
Export("call")
|
|
|
|
_, err := envBuilder.Instantiate(ctx)
|
|
return err
|
|
}
|
|
|
|
func (h _subsonicAPIService) _Call(ctx context.Context, m api.Module, stack []uint64) {
|
|
offset, size := uint32(stack[0]), uint32(stack[1])
|
|
buf, err := wasm.ReadMemory(m.Memory(), offset, size)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
request := new(CallRequest)
|
|
err = request.UnmarshalVT(buf)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
resp, err := h.Call(ctx, request)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
buf, err = resp.MarshalVT()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
ptr, err := wasm.WriteMemory(ctx, m, buf)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
ptrLen := (ptr << uint64(32)) | uint64(len(buf))
|
|
stack[0] = ptrLen
|
|
}
|