{"version":3,"file":"azure_blob_storage_container.cjs","names":["BaseDocumentLoader","BlobServiceClient","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,sCAAAA,mBAAmB;CACtE,IAAI,aAAwC;AAC1C,SAAO,EACL,kBAAkB,gCACnB;;CAGH;CAEA;CAEA;CAEA,YAAY,EACV,aACA,sBACwC;AACxC,SAAO;AACP,OAAK,mBAAmB,YAAY;AACpC,OAAK,YAAY,YAAY;AAC7B,OAAK,qBAAqB;;;;;;;;;;;CAY5B,MAAa,OAAO;EAUlB,MAAM,kBAToBC,oBAAAA,kBAAkB,qBAC1C,KAAK,kBACL,EACE,kBAAkB,EAChB,iBAAiB,sCAClB,EACF,CACF,CAEyC,mBACxC,KAAK,UACN;EAED,IAAI,OAAmB,EAAE;AACzB,aAAW,MAAM,QAAQ,gBAAgB,eAAe,EAAE;GACxD,MAAM,SAAS,IAAIC,qDAAAA,2BAA2B;IAC5C,aAAa;KACX,kBAAkB,KAAK;KACvB,WAAW,KAAK;KAChB,UAAU,KAAK;KAChB;IACD,oBAAoB,KAAK;IAC1B,CAAC;AACF,UAAO,KAAK,OAAO,MAAM,OAAO,MAAM,CAAC;;AAGzC,SAAO"}