fix: export REPError and document all getSecure() throw conditions#46
Merged
olamide226 merged 1 commit intomainfrom Mar 29, 2026
Merged
Conversation
REPError was not exported, making instanceof checks impossible for consumers. Documents all four throw cases including key-not-found, with a complete try/catch example in the SDK reference.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR makes REPError part of the public SDK surface so consumers can reliably import it, and updates the SDK reference docs to enumerate getSecure() failure modes and show a try/catch example using REPError.
Changes:
- Export
REPErrorfrom@rep-protocol/sdk(sdk/src/index.ts). - Expand
getSecure()“Throws” documentation and add an example that importsREPError(docs/.../sdk.mdx).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| sdk/src/index.ts | Makes REPError a named export so consumers can import it for error handling. |
| docs/src/content/docs/reference/sdk.mdx | Updates getSecure() docs with explicit throw cases and a try/catch example referencing REPError. |
Comments suppressed due to low confidence (1)
sdk/src/index.ts:51
- Exporting REPError enables
instanceofchecks, butgetSecure()can still reject with non-REPError exceptions (e.g.fetch()network rejections, invalid JSON/base64, WebCrypto import/decrypt errors). That makes consumerinstanceof REPErrorhandling incomplete and also conflicts with the docs’ claim that decryption/network failures throw REPError. Consider catching errors inside_loadSensitiveVars()(and theawait _sensitiveLoadPromisepath) and rethrowing aREPError(optionally using thecausefield) so allgetSecure()failures are consistently typed.
export class REPError extends Error {
constructor(message: string) {
super(`[REP] ${message}`);
this.name = 'REPError';
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
REPErrorfrom@rep-protocol/sdk— it was defined but not exported, makinginstanceof REPErrorchecks impossible for consumersgetSecure()throw conditions in the SDK reference (key not found, endpoint unreachable, key expired, decryption failure)REPErrorimportTest plan
import { REPError } from '@rep-protocol/sdk'resolves after buildinstanceof REPErrorworks in a catch block