{"version":3,"file":"didPeer.mjs","names":[],"sources":["../../../../../src/modules/dids/methods/peer/didPeer.ts"],"sourcesContent":["import { CredoError } from '../../../../error'\n\nimport { getAlternativeDidsForNumAlgo4Did } from './peerDidNumAlgo4'\n\nconst PEER_DID_REGEX =\n  /^did:peer:(([01](z)([1-9a-km-zA-HJ-NP-Z]{5,200}))|(2((.[AEVID](z)([1-9a-km-zA-HJ-NP-Z]{5,200}))+(.(S)[0-9a-zA-Z=]*)*))|([4](z[1-9a-km-zA-HJ-NP-Z]{46})(:z[1-9a-km-zA-HJ-NP-Z]{6,}){0,1}))$/\n\nexport function isValidPeerDid(did: string): boolean {\n  const isValid = PEER_DID_REGEX.test(did)\n\n  return isValid\n}\n\nexport enum PeerDidNumAlgo {\n  InceptionKeyWithoutDoc = 0,\n  GenesisDoc = 1,\n  MultipleInceptionKeyWithoutDoc = 2,\n  ShortFormAndLongForm = 4,\n}\n\nexport function getNumAlgoFromPeerDid(did: string) {\n  const numAlgo = Number(did[9])\n\n  if (\n    numAlgo !== PeerDidNumAlgo.InceptionKeyWithoutDoc &&\n    numAlgo !== PeerDidNumAlgo.GenesisDoc &&\n    numAlgo !== PeerDidNumAlgo.MultipleInceptionKeyWithoutDoc &&\n    numAlgo !== PeerDidNumAlgo.ShortFormAndLongForm\n  ) {\n    throw new CredoError(`Invalid peer did numAlgo: ${numAlgo}`)\n  }\n\n  return numAlgo as PeerDidNumAlgo\n}\n\n/**\n * Given a peer did, returns any alternative forms equivalent to it.\n *\n * @param did\n * @returns array of alternative dids or undefined if not applicable\n */\nexport function getAlternativeDidsForPeerDid(did: string) {\n  if (getNumAlgoFromPeerDid(did) === PeerDidNumAlgo.ShortFormAndLongForm) {\n    return getAlternativeDidsForNumAlgo4Did(did)\n  }\n}\n"],"mappings":";;;;AAIA,MAAM,iBACJ;AAEF,SAAgB,eAAe,KAAsB;CAGnD,OAFgB,eAAe,KAAK,GAEvB;AACf;AAEA,IAAY,iBAAL,yBAAA,gBAAA;CACL,eAAA,eAAA,4BAAA,KAAA;CACA,eAAA,eAAA,gBAAA,KAAA;CACA,eAAA,eAAA,oCAAA,KAAA;CACA,eAAA,eAAA,0BAAA,KAAA;;AACF,EAAA,CAAA,CAAA;AAEA,SAAgB,sBAAsB,KAAa;CACjD,MAAM,UAAU,OAAO,IAAI,EAAE;CAE7B,IACE,YAAA,KACA,YAAA,KACA,YAAA,KACA,YAAA,GAEA,MAAM,IAAI,WAAW,6BAA6B,SAAS;CAG7D,OAAO;AACT;;;;;;;AAQA,SAAgB,6BAA6B,KAAa;CACxD,IAAI,sBAAsB,GAAG,MAAA,GAC3B,OAAO,iCAAiC,GAAG;AAE/C"}