UNPKG

@arcblock/did

Version:

Javascript lib to work with ArcBlock DID

36 lines (34 loc) 1.26 kB
const require_method = require('./method.cjs'); const require_index = require('./index.cjs'); //#region src/validate.ts /** * DID Validation Functions * * isValid and isFromPublicKey remain in index.ts (too many dependencies to move). * This file provides isKnownDid which covers all methods including did:name. */ /** * Check if a DID string is a known valid DID. * * Unlike `isValid` (which only validates cryptographic addresses), * `isKnownDid` covers all known methods: * - Crypto methods (abt/afs/aos/spaces): delegates to `isValid` for checksum validation * - Alias methods (name): checks for non-empty identifier * - Unknown methods: returns false * - Bare cryptographic addresses: delegates to `isValid` * * @param did - DID string to validate * @returns true if the DID is valid for its method */ function isKnownDid(did) { if (typeof did !== "string" || !did) return false; const match = did.match(/^did:([a-z0-9]+):(.*)$/); if (!match) return require_index.isValid(did); const [, method, identifier] = match; if (!identifier) return false; if (require_method.isCryptoMethod(method)) return require_index.isValid(did); if (require_method.isAliasMethod(method)) return true; return false; } //#endregion exports.isKnownDid = isKnownDid;