{"version":3,"sources":["../src/predict.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getGenkitClientHeader } from './common';\n\n/**\n * @deprecated\n */\nexport type PredictMethod = 'predict' | 'predictLongRunning';\n\n/**\n * @deprecated\n */\nexport interface Operation {\n  name: string;\n  done?: boolean;\n  error?: {\n    message: string;\n  };\n  response?: {\n    generateVideoResponse: {\n      generatedSamples: { video: { uri: string } }[];\n    };\n  };\n}\n\nfunction predictEndpoint(options: {\n  apiVersion: string;\n  model: string;\n  apiKey: string;\n  method: PredictMethod;\n}) {\n  return `https://generativelanguage.googleapis.com/${options.apiVersion}/models/${options.model}:${options.method}?key=${options.apiKey}`;\n}\n\nfunction opCheckEndpoint(options: {\n  apiVersion: string;\n  operation: string;\n  apiKey: string;\n}) {\n  return `https://generativelanguage.googleapis.com/${options.apiVersion}/${options.operation}?key=${options.apiKey}`;\n}\n\n/**\n * @deprecated\n */\nexport type PredictClient<I = unknown, R = unknown, P = unknown> = (\n  instances: I[],\n  parameters: P\n) => Promise<R>;\n\n/**\n * @deprecated\n */\nexport function predictModel<I = unknown, R = unknown, P = unknown>(\n  model: string,\n  apiKey: string,\n  method: PredictMethod\n): PredictClient<I, R, P> {\n  return async (instances: I[], parameters: P): Promise<R> => {\n    const fetch = (await import('node-fetch')).default;\n\n    const req = {\n      instances,\n      parameters,\n    };\n\n    const response = await fetch(\n      predictEndpoint({\n        model,\n        apiVersion: 'v1beta',\n        apiKey,\n        method,\n      }),\n      {\n        method: 'POST',\n        body: JSON.stringify(req),\n        headers: {\n          'Content-Type': 'application/json',\n          'X-Goog-Api-Client': getGenkitClientHeader(),\n        },\n      }\n    );\n\n    if (!response.ok) {\n      throw new Error(\n        `Error from Gemini AI predict: HTTP ${\n          response.status\n        }: ${await response.text()}`\n      );\n    }\n\n    return (await response.json()) as R;\n  };\n}\n\n/**\n * @deprecated\n */\nexport async function checkOp(\n  operation: string,\n  apiKey: string\n): Promise<Operation> {\n  const fetch = (await import('node-fetch')).default;\n\n  const response = await fetch(\n    opCheckEndpoint({\n      apiVersion: 'v1beta',\n      operation,\n      apiKey,\n    }),\n    {\n      method: 'GET',\n      headers: {\n        'Content-Type': 'application/json',\n        'X-Goog-Api-Client': getGenkitClientHeader(),\n      },\n    }\n  );\n\n  if (!response.ok) {\n    throw new Error(\n      `Error from operation API: HTTP ${\n        response.status\n      }: ${await response.text()}`\n    );\n  }\n\n  return (await response.json()) as Operation;\n}\n"],"mappings":"AAgBA,SAAS,6BAA6B;AAuBtC,SAAS,gBAAgB,SAKtB;AACD,SAAO,6CAA6C,QAAQ,UAAU,WAAW,QAAQ,KAAK,IAAI,QAAQ,MAAM,QAAQ,QAAQ,MAAM;AACxI;AAEA,SAAS,gBAAgB,SAItB;AACD,SAAO,6CAA6C,QAAQ,UAAU,IAAI,QAAQ,SAAS,QAAQ,QAAQ,MAAM;AACnH;AAaO,SAAS,aACd,OACA,QACA,QACwB;AACxB,SAAO,OAAO,WAAgB,eAA8B;AAC1D,UAAM,SAAS,MAAM,OAAO,YAAY,GAAG;AAE3C,UAAM,MAAM;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAEA,UAAM,WAAW,MAAM;AAAA,MACrB,gBAAgB;AAAA,QACd;AAAA,QACA,YAAY;AAAA,QACZ;AAAA,QACA;AAAA,MACF,CAAC;AAAA,MACD;AAAA,QACE,QAAQ;AAAA,QACR,MAAM,KAAK,UAAU,GAAG;AAAA,QACxB,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,qBAAqB,sBAAsB;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAEA,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,sCACE,SAAS,MACX,KAAK,MAAM,SAAS,KAAK,CAAC;AAAA,MAC5B;AAAA,IACF;AAEA,WAAQ,MAAM,SAAS,KAAK;AAAA,EAC9B;AACF;AAKA,eAAsB,QACpB,WACA,QACoB;AACpB,QAAM,SAAS,MAAM,OAAO,YAAY,GAAG;AAE3C,QAAM,WAAW,MAAM;AAAA,IACrB,gBAAgB;AAAA,MACd,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD;AAAA,MACE,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB;AAAA,QAChB,qBAAqB,sBAAsB;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AAEA,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI;AAAA,MACR,kCACE,SAAS,MACX,KAAK,MAAM,SAAS,KAAK,CAAC;AAAA,IAC5B;AAAA,EACF;AAEA,SAAQ,MAAM,SAAS,KAAK;AAC9B;","names":[]}