{"version":3,"sources":["../src/releases/operations.ts"],"sourcesContent":["import { FirebaseAppDistribution } from \"../\";\r\nimport {\r\n  APP_DISTRIBUTION_ENDPOINT,\r\n  ENDPOINT_VERSION,\r\n  makeRequest,\r\n} from \"../utils\";\r\n\r\ntype UploadReleaseResult =\r\n  | \"UPLOAD_RELEASE_RESULT_UNSPECIFIED\"\r\n  | \"RELEASE_CREATED\"\r\n  | \"RELEASE_UPDATED\"\r\n  | \"RELEASE_UNMODIFIED\";\r\n\r\nexport interface Release {\r\n  name: string;\r\n  releaseNotes?: string;\r\n  displayVersion: string;\r\n  buildVersion: string;\r\n  createTime: Date;\r\n  firebaseConsoleUri: string;\r\n  testingUri: string;\r\n  binaryDownloadUri: string;\r\n  updateTime?: string;\r\n  expireTime?: string;\r\n}\r\n\r\nexport interface Operation {\r\n  name: string;\r\n  done?: boolean;\r\n  error?: {\r\n    code: number;\r\n    message: string;\r\n    status: string;\r\n  };\r\n  response?: {\r\n    \"@type\": string;\r\n    result: UploadReleaseResult;\r\n    release: Release;\r\n  };\r\n  metadata?: any;\r\n}\r\n\r\nfunction isValidOperationName(operationName: string): boolean {\r\n  const regex =\r\n    /^projects\\/[^/]+\\/apps\\/[^/]+\\/releases\\/[^/]+\\/operations\\/[^/]+$/;\r\n  return regex.test(operationName);\r\n}\r\n\r\nexport class Operations {\r\n  private parent: FirebaseAppDistribution;\r\n\r\n  constructor(parent: FirebaseAppDistribution) {\r\n    this.parent = parent;\r\n  }\r\n\r\n  async get(operationName: string): Promise<Operation> {\r\n    if (!isValidOperationName(operationName)) {\r\n      throw new Error(`Invalid operation name: ${operationName}`);\r\n    }\r\n\r\n    const accessToken = await this.parent.getAccessToken();\r\n    const url = new URL(\r\n      `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/${operationName}`,\r\n    );\r\n\r\n    const response = await makeRequest<Operation>(url.toString(), {\r\n      headers: {\r\n        authorization: `Bearer ${accessToken}`,\r\n      },\r\n    });\r\n\r\n    return response;\r\n  }\r\n}\r\n"],"mappings":";;;;;;;;AA0CA,SAAS,qBAAqB,eAAgC;AAC5D,QAAM,QACJ;AACF,SAAO,MAAM,KAAK,aAAa;AACjC;AAEO,IAAM,aAAN,MAAiB;AAAA,EAGtB,YAAY,QAAiC;AAC3C,SAAK,SAAS;AAAA,EAChB;AAAA,EAEM,IAAI,eAA2C;AAAA;AACnD,UAAI,CAAC,qBAAqB,aAAa,GAAG;AACxC,cAAM,IAAI,MAAM,2BAA2B,aAAa,EAAE;AAAA,MAC5D;AAEA,YAAM,cAAc,MAAM,KAAK,OAAO,eAAe;AACrD,YAAM,MAAM,IAAI;AAAA,QACd,GAAG,yBAAyB,IAAI,gBAAgB,IAAI,aAAa;AAAA,MACnE;AAEA,YAAM,WAAW,MAAM,YAAuB,IAAI,SAAS,GAAG;AAAA,QAC5D,SAAS;AAAA,UACP,eAAe,UAAU,WAAW;AAAA,QACtC;AAAA,MACF,CAAC;AAED,aAAO;AAAA,IACT;AAAA;AACF;","names":[]}