Parent: #11 Implement `Invoke-CurseForgeUploadAPI` — the private client function for the site-relative Upload API. **Acceptance criteria:** - [ ] `Invoke-CurseForgeUploadAPI` is a private function under `src/functions/private/Upload/` - [ ] Resolves context token from vault via `Resolve-CurseForgeContext` - [ ] Base URL pattern: `https://{game}.curseforge.com/api/` — game slug resolved from context or parameter - [ ] Auth header: `X-Api-Token: {token}` (different from Core API) - [ ] Supports GET, POST, PATCH methods - [ ] Handles multipart/form-data for file uploads - [ ] Error handling returns meaningful messages from API error responses - [ ] Unit tests cover URL construction and auth header placement --- - [ ] Create `src/functions/private/Upload/Invoke-CurseForgeUploadAPI.ps1` - [ ] Create `tests/Upload/Invoke-CurseForgeUploadAPI.Tests.ps1`
Parent: #11
Implement
Invoke-CurseForgeUploadAPI— the private client function for the site-relative Upload API.Acceptance criteria:
Invoke-CurseForgeUploadAPIis a private function undersrc/functions/private/Upload/Resolve-CurseForgeContexthttps://{game}.curseforge.com/api/— game slug resolved from context or parameterX-Api-Token: {token}(different from Core API)src/functions/private/Upload/Invoke-CurseForgeUploadAPI.ps1tests/Upload/Invoke-CurseForgeUploadAPI.Tests.ps1