{"version":3,"sources":["../src/data/data.ts"],"names":[],"mappings":"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","file":"chunk-HDKK24O2.mjs","sourcesContent":["import { Api } from \"../api/config\";\nimport {\n  Fetch,\n  FetchAuthBuilder,\n  type FetchAuth,\n} from \"../fetch-safe/fetch-safe\";\nimport type { SafeValue } from \"../values/values\";\nimport type {\n  CodexDataResponse,\n  UploadStategy,\n  UploadResponse,\n  CodexSpaceResponse,\n  CodexNodeSpace,\n  CodexDataNetworkResponse,\n  CodexNetworkDownload,\n  CodexManifest,\n  CodexDataItems,\n} from \"./types\";\n\ntype CodexDataOptions = {\n  auth?: FetchAuth;\n};\n\nexport class CodexData {\n  readonly url: string;\n  readonly auth: FetchAuth = {};\n\n  constructor(url: string, options?: CodexDataOptions) {\n    this.url = url;\n\n    if (options?.auth) {\n      this.auth = options.auth;\n    }\n  }\n\n  /**\n   * Lists manifest CIDs stored locally in node.\n   * TODO: remove the faker data part when the api is ready\n   */\n  cids(): Promise<SafeValue<CodexDataItems>> {\n    const url = this.url + Api.config.prefix + \"/data\";\n\n    return Fetch.safeJson<CodexDataResponse>(url, {\n      method: \"GET\",\n      headers: FetchAuthBuilder.build(this.auth),\n    }).then((data) => {\n      if (data.error) {\n        return data;\n      }\n\n      return { error: false, data: { content: data.data.content } };\n    });\n  }\n\n  /**\n   * Gets a summary of the storage space allocation of the node.\n   */\n  space(): Promise<SafeValue<CodexNodeSpace>> {\n    const url = this.url + Api.config.prefix + \"/space\";\n\n    return Fetch.safeJson<CodexSpaceResponse>(url, {\n      method: \"GET\",\n      headers: FetchAuthBuilder.build(this.auth),\n    });\n  }\n\n  /**\n   * Upload a file in a streaming manner.\n   * Once completed, the file is stored in the node and can be retrieved by any node in the network using the returned CID.\n   * XMLHttpRequest is used instead of fetch for this case, to obtain progress information.\n   * A callback onProgress can be passed to receive upload progress data information.\n   */\n  upload(stategy: UploadStategy): UploadResponse {\n    const url = this.url + Api.config.prefix + \"/data\";\n\n    return {\n      result: stategy.upload(url, { auth: this.auth }),\n      abort: () => {\n        stategy.abort();\n      },\n    };\n  }\n\n  /**\n   * Download a file from the local node in a streaming manner.\n   * If the file is not available locally, a 404 is returned.\n   */\n  async localDownload(cid: string): Promise<SafeValue<Response>> {\n    const url = this.url + Api.config.prefix + \"/data/\" + cid;\n\n    return Fetch.safe(url, {\n      method: \"GET\",\n      headers: FetchAuthBuilder.build(this.auth),\n    });\n  }\n\n  /**\n   * Download a file from the network to the local node if it's not available locally.\n   * Note: Download is performed async. Call can return before download is completed.\n   */\n  async networkDownload(cid: string): Promise<SafeValue<CodexNetworkDownload>> {\n    const url = this.url + Api.config.prefix + `/data/${cid}/network`;\n\n    return Fetch.safeJson<CodexDataNetworkResponse>(url, {\n      method: \"POST\",\n      headers: FetchAuthBuilder.build(this.auth),\n    });\n  }\n\n  /**\n   * Download a file from the network in a streaming manner.\n   * If the file is not available locally, it will be retrieved from other nodes in the network if able.\n   */\n  async networkDownloadStream(cid: string): Promise<SafeValue<Response>> {\n    const url = this.url + Api.config.prefix + `/data/${cid}/network/stream`;\n\n    return Fetch.safe(url, {\n      method: \"GET\",\n      headers: FetchAuthBuilder.build(this.auth),\n    });\n  }\n\n  /**\n   * Download only the dataset manifest from the network to the local node\n   * if it's not available locally.\n   */\n  async fetchManifest(cid: string): Promise<SafeValue<CodexManifest>> {\n    const url = this.url + Api.config.prefix + `/data/${cid}/network/manifest`;\n\n    return Fetch.safeJson<CodexManifest>(url, {\n      method: \"GET\",\n      headers: FetchAuthBuilder.build(this.auth),\n    });\n  }\n}\n"]}