+55
-26
src/atpasser/uri/__init__.py
+55
-26
src/atpasser/uri/__init__.py
······+raise InvalidURIError(uri, "contains invalid characters", "URI must only contain ASCII characters")+raise InvalidURIError(uri, "exceeds maximum length", f"URI length {len(uri)} exceeds maximum allowed length of 8000 characters")+raise InvalidURIError(uri, "fragment parsing failed", f"Failed to parse URI fragment: {str(e)}")+raise InvalidURIError(uri, "query parameter parsing failed", f"Failed to parse query parameters: {str(e)}")+raise InvalidURIError(uri, "authority parsing failed", f"Failed to parse URI authority: {str(e)}")+raise InvalidURIError(uri, "unsupported format", "URI does not support user information (username:password)")···+raise InvalidURIError(uri, "JSONPath parsing failed", f"Failed to parse JSONPath fragment '{fragment}': {str(e)}")+raise InvalidURIError(uri, "query parameter parsing failed", f"Failed to parse query parameters '{query}': {str(e)}")···+raise InvalidURIError(uri, "URI construction failed", f"Failed to construct canonical URI: {str(e)}")
+28
-11
src/atpasser/uri/did.py
+28
-11
src/atpasser/uri/did.py
······+raise InvalidDIDError(uri, "exceeds maximum length", f"DID length {len(uri)} exceeds maximum allowed length of 2048 characters")···+raise InvalidDIDError(self.uri, "unsupported DID method", f"Unsupported DID method: {self.uri.split(':')[1]}")+raise ResolutionError(self.uri, "fetch DID document", f"Failed to fetch or parse DID document: {str(e)}")
+116
src/atpasser/uri/exceptions.py
+116
src/atpasser/uri/exceptions.py
···
+57
-28
src/atpasser/uri/handle.py
+57
-28
src/atpasser/uri/handle.py
······+raise InvalidHandleError(handle, "exceeds maximum length", f"Handle length {len(handle)} exceeds maximum allowed length of 253 characters")+raise InvalidHandleError(handle, "invalid format", "Handle must contain at least one dot separator, e.g., 'example.com'")+raise InvalidHandleError(handle, "segment length error", f"Handle segment {i+1} length {len(label)} is not in the 1-63 character range")+raise InvalidHandleError(handle, "contains invalid characters", f"Handle segment {i+1} contains invalid characters: {', '.join(invalid_chars)}")+raise InvalidHandleError(handle, "invalid format", f"Handle segment {i+1} cannot start or end with a hyphen")+raise InvalidHandleError(handle, "invalid format", "Handle's top-level domain cannot start with a digit")······+raise ResolutionError(self.handle, "DNS resolution", f"Error parsing DNS TXT record: {str(e)}")+# Some websites may return incorrect Content-Type, so here we only warn without throwing an exception+raise ResolutionError(self.handle, "HTTP request", f"Error requesting well-known endpoint: {str(e)}")+raise ResolutionError(self.handle, "resolution", f"Unknown error occurred while resolving Handle: {str(e)}")
+44
-21
src/atpasser/uri/nsid.py
+44
-21
src/atpasser/uri/nsid.py
······+raise InvalidNSIDError(nsid, "contains invalid characters", "NSID must only contain ASCII characters")+raise InvalidNSIDError(nsid, "exceeds maximum length", f"NSID length {len(nsidWithoutFragment)} exceeds maximum allowed length of 317 characters")+raise InvalidNSIDError(nsid, "invalid format", f"NSID must contain at least 3 segments, currently has {len(segments)}")+raise InvalidNSIDError(nsid, "domain authority length exceeds limit", "Domain authority part length exceeds 253 characters")+raise InvalidNSIDError(nsid, "segment length error", f"Domain authority segment {i+1} length is not in the 1-63 character range")+raise InvalidNSIDError(nsid, "contains invalid characters", f"Domain authority segment {i+1} contains invalid characters: {', '.join(invalid_chars)}")+raise InvalidNSIDError(nsid, "invalid format", f"Domain authority segment {i+1} cannot start or end with a hyphen")+raise InvalidNSIDError(nsid, "invalid format", "NSID's top-level domain cannot start with a digit")+raise InvalidNSIDError(nsid, "name length error", "NSID name cannot be empty and length cannot exceed 63 characters")+invalid_chars = set(name) - set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")+raise InvalidNSIDError(nsid, "contains invalid characters", f"NSID name contains invalid characters: {', '.join(invalid_chars)}")+raise InvalidNSIDError(nsid, "fragment length error", "NSID fragment cannot be empty and length cannot exceed 63 characters")+invalid_chars = set(fragment) - set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")+raise InvalidNSIDError(nsid, "contains invalid characters", f"NSID fragment contains invalid characters: {', '.join(invalid_chars)}")
+31
-24
src/atpasser/uri/restricted.py
+31
-24
src/atpasser/uri/restricted.py
······+raise InvalidURIError(uri, "base URI validation failed", f"Failed to parse base URI: {str(e)}")+raise InvalidRestrictedURIError(uri, "query parameters not supported", "Restricted URI cannot contain query parameters")+raise InvalidRestrictedURIError(uri, "fragments not supported", "Restricted URI cannot contain fragments")+raise InvalidRestrictedURIError(uri, "invalid authority", "Restricted URI must contain a valid DID or Handle")+raise InvalidRestrictedURIError(uri, "too many path segments", f"Restricted URI can have at most 2 path segments, currently has {len(self.path)}")+raise InvalidRestrictedURIError(uri, "parsing error", f"Error occurred while parsing Restricted URI: {str(e)}")
+19
-18
src/atpasser/uri/rkey.py
+19
-18
src/atpasser/uri/rkey.py
······+raise InvalidRKeyError(recordKey, "exceeds maximum length", f"Record key length {len(recordKey)} exceeds maximum allowed length of 512 characters")+raise InvalidRKeyError(recordKey, "reserved value", "'..' is a reserved value and cannot be used as a record key")+raise InvalidRKeyError(recordKey, "reserved value", "'.' is a reserved value and cannot be used as a record key")+raise InvalidRKeyError(recordKey, "contains invalid characters", f"Record key contains invalid characters: {', '.join(invalid_chars)}")