Parent: #8 Implement changelog retrieval, download URL resolution, and the convenience file download function. **Acceptance criteria:** - [ ] `Get-CurseForgeFileChangelog` returns file changelog in HTML format - [ ] `Get-CurseForgeFileDownloadUrl` returns the download URL string - [ ] `Save-CurseForgeFile` resolves the download URL and downloads the file to a specified path - [ ] `-Path` parameter on Save defaults to current directory with original filename - [ ] `-PassThru` switch returns the downloaded file info - [ ] Unit tests cover all three functions --- - [ ] Create `src/functions/public/Files/Get-CurseForgeFileChangelog.ps1` — `GET /v1/mods/{modId}/files/{fileId}/changelog` - [ ] Create `src/functions/public/Files/Get-CurseForgeFileDownloadUrl.ps1` — `GET /v1/mods/{modId}/files/{fileId}/download-url` - [ ] Create `src/functions/public/Files/Save-CurseForgeFile.ps1` — composite (resolves URL then `Invoke-WebRequest -OutFile`) - [ ] Create `tests/Files/Save-CurseForgeFile.Tests.ps1`
Parent: #8
Implement changelog retrieval, download URL resolution, and the convenience file download function.
Acceptance criteria:
Get-CurseForgeFileChangelogreturns file changelog in HTML formatGet-CurseForgeFileDownloadUrlreturns the download URL stringSave-CurseForgeFileresolves the download URL and downloads the file to a specified path-Pathparameter on Save defaults to current directory with original filename-PassThruswitch returns the downloaded file infosrc/functions/public/Files/Get-CurseForgeFileChangelog.ps1—GET /v1/mods/{modId}/files/{fileId}/changelogsrc/functions/public/Files/Get-CurseForgeFileDownloadUrl.ps1—GET /v1/mods/{modId}/files/{fileId}/download-urlsrc/functions/public/Files/Save-CurseForgeFile.ps1— composite (resolves URL thenInvoke-WebRequest -OutFile)tests/Files/Save-CurseForgeFile.Tests.ps1