{"version":3,"file":"azure_blob_storage_container.cjs","names":["BaseDocumentLoader","BlobServiceClient","docs: Document[]","AzureBlobStorageFileLoader"],"sources":["../../../src/document_loaders/web/azure_blob_storage_container.ts"],"sourcesContent":["import { BlobServiceClient } from \"@azure/storage-blob\";\nimport { Document } from \"@langchain/core/documents\";\nimport { BaseDocumentLoader } from \"@langchain/core/document_loaders/base\";\nimport { AzureBlobStorageFileLoader } from \"./azure_blob_storage_file.js\";\nimport { UnstructuredLoaderOptions } from \"../fs/unstructured.js\";\n\n/**\n * Interface representing the configuration for accessing an Azure Blob\n * Storage container. It includes properties for the connection string and\n * container name.\n */\ninterface AzureBlobStorageContainerConfig {\n  connectionString: string;\n  container: string;\n}\n\n/**\n * Interface representing the configuration for the\n * AzureBlobStorageContainerLoader. It includes properties for the\n * azureConfig and unstructuredConfig. The azureConfig property contains\n * the Azure Blob Storage container configuration, and the\n * unstructuredConfig property contains the options for the\n * UnstructuredLoader.\n */\ninterface AzureBlobStorageContainerLoaderConfig {\n  azureConfig: AzureBlobStorageContainerConfig;\n  unstructuredConfig?: UnstructuredLoaderOptions;\n}\n\n/**\n * Class representing a document loader that loads documents from an Azure\n * Blob Storage container. It extends the BaseDocumentLoader class.\n */\nexport class AzureBlobStorageContainerLoader extends BaseDocumentLoader {\n  get lc_secrets(): { [key: string]: string } {\n    return {\n      connectionString: \"AZURE_BLOB_CONNECTION_STRING\",\n    };\n  }\n\n  private readonly connectionString: string;\n\n  private readonly container: string;\n\n  private readonly unstructuredConfig?: UnstructuredLoaderOptions;\n\n  constructor({\n    azureConfig,\n    unstructuredConfig,\n  }: AzureBlobStorageContainerLoaderConfig) {\n    super();\n    this.connectionString = azureConfig.connectionString;\n    this.container = azureConfig.container;\n    this.unstructuredConfig = unstructuredConfig;\n  }\n\n  /**\n   * Method to load documents from an Azure Blob Storage container. It\n   * creates a BlobServiceClient using the connection string, gets the\n   * container client using the container name, and iterates over the blobs\n   * in the container. For each blob, it creates an instance of\n   * AzureBlobStorageFileLoader and loads the documents using the loader.\n   * The loaded documents are concatenated to the docs array and returned.\n   * @returns An array of loaded documents.\n   */\n  public async load() {\n    const blobServiceClient = BlobServiceClient.fromConnectionString(\n      this.connectionString,\n      {\n        userAgentOptions: {\n          userAgentPrefix: \"langchainjs-blob-storage-container\",\n        },\n      }\n    );\n\n    const containerClient = blobServiceClient.getContainerClient(\n      this.container\n    );\n\n    let docs: Document[] = [];\n    for await (const blob of containerClient.listBlobsFlat()) {\n      const loader = new AzureBlobStorageFileLoader({\n        azureConfig: {\n          connectionString: this.connectionString,\n          container: this.container,\n          blobName: blob.name,\n        },\n        unstructuredConfig: this.unstructuredConfig,\n      });\n      docs = docs.concat(await loader.load());\n    }\n\n    return docs;\n  }\n}\n"],"mappings":";;;;;;;;;;;;AAiCA,IAAa,kCAAb,cAAqDA,0DAAmB;CACtE,IAAI,aAAwC;AAC1C,SAAO,EACL,kBAAkB,+BACnB;CACF;CAED,AAAiB;CAEjB,AAAiB;CAEjB,AAAiB;CAEjB,YAAY,EACV,aACA,oBACsC,EAAE;EACxC,OAAO;EACP,KAAK,mBAAmB,YAAY;EACpC,KAAK,YAAY,YAAY;EAC7B,KAAK,qBAAqB;CAC3B;;;;;;;;;;CAWD,MAAa,OAAO;EAClB,MAAM,oBAAoBC,uCAAkB,qBAC1C,KAAK,kBACL,EACE,kBAAkB,EAChB,iBAAiB,qCAClB,EACF,EACF;EAED,MAAM,kBAAkB,kBAAkB,mBACxC,KAAK,UACN;EAED,IAAIC,OAAmB,CAAE;AACzB,aAAW,MAAM,QAAQ,gBAAgB,eAAe,EAAE;GACxD,MAAM,SAAS,IAAIC,gFAA2B;IAC5C,aAAa;KACX,kBAAkB,KAAK;KACvB,WAAW,KAAK;KAChB,UAAU,KAAK;IAChB;IACD,oBAAoB,KAAK;GAC1B;GACD,OAAO,KAAK,OAAO,MAAM,OAAO,MAAM,CAAC;EACxC;AAED,SAAO;CACR;AACF"}