{"_id":"@azure/functions-extensions-blob","_rev":"6-ba419306fc9c6c56464b4bf528a08cec","name":"@azure/functions-extensions-blob","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0-preview":{"name":"@azure/functions-extensions-blob","version":"0.1.0-preview","keywords":["azure","azure-functions","serverless","blob","storage"],"author":{"name":"Microsoft"},"license":"MIT","_id":"@azure/functions-extensions-blob@0.1.0-preview","maintainers":[{"name":"pgopa","email":"pgopa@microsoft.com"},{"name":"paulbatum","email":"paul.batum@gmail.com"},{"name":"facavalcante","email":"facaval@microsoft.com"},{"name":"ahmelsayed","email":"ahmelsayed@outlook.com"},{"name":"mahoeger","email":"mahoeger@microsoft.com"},{"name":"anatolib","email":"anatolib@microsoft.com"},{"name":"gaaguiar","email":"gavin.aguiar@microsoft.com"},{"name":"victoriahall","email":"victoriahall@microsoft.com"}],"homepage":"https://github.com/Azure/azure-functions-nodejs-extensions-blob#readme","bugs":{"url":"https://github.com/Azure/azure-functions-nodejs-extensions/issues"},"dist":{"shasum":"0061129678466bfbb7b8dd77232002edb35626f7","tarball":"https://registry.npmjs.org/@azure/functions-extensions-blob/-/functions-extensions-blob-0.1.0-preview.tgz","fileCount":19,"integrity":"sha512-SRNw9juBhKQkljHETVyx88HAs8t98oiMFq3womQVb2dGoUpm8PjF8OY48sDWHFEXaDFHiF9IkMp89y9Fbgj6tw==","signatures":[{"sig":"MEYCIQCwqvtYccdXpWPB0d4VyuLCHY/ODSzokCkQlOXUyByJBAIhAK8o8Oj+s48sTqRPNtFAjwddIM4LquwToU0zp7KlWvfZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103472},"main":"./dist/azure-functions-extensions-blob.js","types":"types/index.d.ts","engines":{"node":">=18.0"},"gitHead":"ef3ceb50f4be99499de937d1ec04b328cff9570a","scripts":{"lint":"eslint . --fix","test":"ts-node ./test/index.ts","build":"webpack --mode development","clean":"rimraf dist && rimraf node_modules/","watch":"webpack --watch --mode development","format":"prettier . --write","minify":"webpack --mode production"},"_npmUser":{"name":"victoriahall","email":"victoriahall@microsoft.com"},"repository":{"url":"git+https://github.com/Azure/azure-functions-nodejs-extensions.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js Azure Storage Client extension implementations for Azure Functions","directories":{},"sideEffects":true,"_nodeVersion":"22.15.0","dependencies":{"@azure/identity":"^4.9.1","@azure/storage-blob":"^12.27.0","@azure/functions-extensions-base":"^0.1.0-preview"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^11.1.0","sinon":"^20.0.0","eslint":"^7.32.0","globby":"^11.0.0","ts-node":"^3.3.0","webpack":"^5.74.0","minimist":"^1.2.8","prettier":"^2.4.1","ts-loader":"^9.3.1","typescript":"^4.5.5","@types/chai":"^4.2.22","@types/node":"18.0.0","typescript4":"npm:typescript@~4.2.0","webpack-cli":"^4.10.0","@types/mocha":"^9.1.1","@types/sinon":"^17.0.4","@types/minimist":"^1.2.2","eslint-plugin-header":"^3.1.1","eslint-plugin-import":"^2.29.0","mocha-junit-reporter":"^2.0.2","eslint-webpack-plugin":"^3.2.0","mocha-multi-reporters":"^1.5.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.12.1","eslint-plugin-deprecation":"^1.3.2","fork-ts-checker-webpack-plugin":"^7.2.13","@typescript-eslint/eslint-plugin":"^5.12.1","eslint-plugin-simple-import-sort":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/functions-extensions-blob_0.1.0-preview_1747243119123_0.6547489424101955","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-preview":{"name":"@azure/functions-extensions-blob","version":"0.2.0-preview","keywords":["azure","azure-functions","serverless","blob","storage"],"author":{"name":"Microsoft"},"license":"MIT","_id":"@azure/functions-extensions-blob@0.2.0-preview","maintainers":[{"name":"pgopa","email":"pgopa@microsoft.com"},{"name":"paulbatum","email":"paul.batum@gmail.com"},{"name":"facavalcante","email":"facaval@microsoft.com"},{"name":"ahmelsayed","email":"ahmelsayed@outlook.com"},{"name":"mahoeger","email":"mahoeger@microsoft.com"},{"name":"anatolib","email":"anatolib@microsoft.com"},{"name":"gaaguiar","email":"gavin.aguiar@microsoft.com"},{"name":"victoriahall","email":"victoriahall@microsoft.com"}],"homepage":"https://github.com/Azure/azure-functions-nodejs-extensions-blob#readme","bugs":{"url":"https://github.com/Azure/azure-functions-nodejs-extensions/issues"},"dist":{"shasum":"5d9fdab42f146405abaa12951a521513003b95c9","tarball":"https://registry.npmjs.org/@azure/functions-extensions-blob/-/functions-extensions-blob-0.2.0-preview.tgz","fileCount":19,"integrity":"sha512-1CjzasReMOIsrQtqDerMOM5zEoEloXS3I1DUx/vxJ+azr9gUcH8riO28JThcE5pS/T2fmup4pXSdWoA4EtYRGg==","signatures":[{"sig":"MEUCIQCJ41EMwsAi+62k6kYiSvAZ/UpPV+azeYdtLHHOjECesgIgfB1dp/zTtg4KXQvm7BsriWtUBjKph/mijr3CuzZ5oE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104613},"main":"./dist/azure-functions-extensions-blob.js","types":"types/index.d.ts","engines":{"node":">=18.0"},"gitHead":"20aa1401ddc4b8d9a90add2276a307e3235ade8c","scripts":{"lint":"eslint . --fix","test":"ts-node ./test/index.ts","build":"webpack --mode development","clean":"rimraf dist && rimraf node_modules/","watch":"webpack --watch --mode development","format":"prettier . --write","minify":"webpack --mode production"},"_npmUser":{"name":"victoriahall","email":"victoriahall@microsoft.com"},"repository":{"url":"git+https://github.com/Azure/azure-functions-nodejs-extensions.git","type":"git"},"_npmVersion":"10.9.2","description":"Node.js Azure Storage Client extension implementations for Azure Functions","directories":{},"sideEffects":true,"_nodeVersion":"22.15.0","dependencies":{"@azure/identity":"^4.9.1","@azure/storage-blob":"^12.27.0","@azure/functions-extensions-base":"^0.2.0-preview"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^11.1.0","sinon":"^20.0.0","eslint":"^7.32.0","globby":"^11.0.0","ts-node":"^3.3.0","webpack":"^5.74.0","minimist":"^1.2.8","prettier":"^2.4.1","ts-loader":"^9.3.1","typescript":"^4.5.5","@types/chai":"^4.2.22","@types/node":"18.0.0","typescript4":"npm:typescript@~4.2.0","webpack-cli":"^4.10.0","@types/mocha":"^9.1.1","@types/sinon":"^17.0.4","@types/minimist":"^1.2.2","eslint-plugin-header":"^3.1.1","eslint-plugin-import":"^2.29.0","mocha-junit-reporter":"^2.0.2","eslint-webpack-plugin":"^3.2.0","mocha-multi-reporters":"^1.5.1","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.12.1","eslint-plugin-deprecation":"^1.3.2","fork-ts-checker-webpack-plugin":"^7.2.13","@typescript-eslint/eslint-plugin":"^5.12.1","eslint-plugin-simple-import-sort":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/functions-extensions-blob_0.2.0-preview_1754074534753_0.6057056844472828","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@azure/functions-extensions-blob","version":"0.3.0","sideEffects":true,"description":"Node.js Azure Storage Client extension implementations for Azure Functions","keywords":["azure","azure-functions","serverless","blob","storage"],"author":{"name":"Microsoft"},"license":"MIT","homepage":"https://github.com/Azure/azure-functions-nodejs-extensions-blob#readme","repository":{"type":"git","url":"git+https://github.com/Azure/azure-functions-nodejs-extensions.git"},"bugs":{"url":"https://github.com/Azure/azure-functions-nodejs-extensions/issues"},"main":"./dist/azure-functions-extensions-blob.js","module":"./dist/azure-functions-extensions-blob.mjs","types":"types/index.d.ts","exports":{".":{"import":{"types":"./types/index.d.ts","default":"./dist/azure-functions-extensions-blob.mjs"},"require":{"types":"./types/index.d.ts","default":"./dist/azure-functions-extensions-blob.js"}}},"engines":{"node":">=18.0"},"scripts":{"build":"webpack --mode development","minify":"webpack --mode production","test":"ts-node ./test/index.ts","clean":"rimraf dist && rimraf node_modules/","format":"prettier . --write","lint":"eslint . --fix","watch":"webpack --watch --mode development","updateVersion":"ts-node ./scripts/updateVersion.ts","validateRelease":"ts-node ./scripts/validateRelease.ts"},"devDependencies":{"@types/chai":"^4.2.22","@types/minimist":"^1.2.2","@types/mocha":"^9.1.1","@types/node":"18.0.0","@types/sinon":"^17.0.4","@typescript-eslint/eslint-plugin":"^5.12.1","@typescript-eslint/parser":"^5.12.1","chai":"^4.2.0","eslint":"^7.32.0","eslint-config-prettier":"^8.3.0","eslint-plugin-deprecation":"^1.3.2","eslint-plugin-header":"^3.1.1","eslint-plugin-import":"^2.29.0","eslint-plugin-prettier":"^4.0.0","eslint-plugin-simple-import-sort":"^10.0.0","eslint-webpack-plugin":"^3.2.0","fork-ts-checker-webpack-plugin":"^7.2.13","globby":"^11.0.0","minimist":"^1.2.8","mocha":"^11.1.0","mocha-junit-reporter":"^2.0.2","mocha-multi-reporters":"^1.5.1","prettier":"^2.4.1","sinon":"^20.0.0","ts-loader":"^9.3.1","ts-node":"^3.3.0","typescript":"^4.5.5","typescript4":"npm:typescript@~4.2.0","webpack":"^5.74.0","webpack-cli":"^4.10.0"},"dependencies":{"@azure/identity":"^4.9.1","@azure/storage-blob":"^12.27.0","@azure/functions-extensions-base":"^0.2.0"},"_id":"@azure/functions-extensions-blob@0.3.0","_integrity":"sha512-yOOtdem1W988NwzwLg4IyFfZgPcx7gB+r9SAX3+Osj1HYLMqhoo3nh1FZjwKhEV6DxF/49tlxPzUpzQRFGi5YA==","_resolved":"M:\\SvcFab\\_App\\MS.Ess.PackageManager.Publisher_App2\\temp\\dff79d04-f2ef-4d20-bfe3-79a5444e64a7\\azure-functions-extensions-blob-0.3.0.tgz","_from":"file:M:\\SvcFab\\_App\\MS.Ess.PackageManager.Publisher_App2\\temp\\dff79d04-f2ef-4d20-bfe3-79a5444e64a7\\azure-functions-extensions-blob-0.3.0.tgz","tag":"latest","_nodeVersion":"18.5.0","dist":{"integrity":"sha512-yOOtdem1W988NwzwLg4IyFfZgPcx7gB+r9SAX3+Osj1HYLMqhoo3nh1FZjwKhEV6DxF/49tlxPzUpzQRFGi5YA==","shasum":"dabd335730b05b3c04fcfa1bada97a7b4ee2bbd1","tarball":"https://registry.npmjs.org/@azure/functions-extensions-blob/-/functions-extensions-blob-0.3.0.tgz","fileCount":23,"unpackedSize":186347,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDc2/I8A/JPsuAo7S7eWewojwTblzIwVFVaENZw/fYJ2wIhAMXyerYhyDCQVJzyTTCuZJT/iILrySlc0megS/uCO+g4"}]},"_npmUser":{"name":"microsoft1es","email":"npmjs@microsoft.com"},"directories":{},"maintainers":[{"name":"pgopa","email":"pgopa@microsoft.com"},{"name":"paulbatum","email":"paul.batum@gmail.com"},{"name":"facavalcante","email":"facaval@microsoft.com"},{"name":"ahmelsayed","email":"ahmelsayed@outlook.com"},{"name":"mahoeger","email":"mahoeger@microsoft.com"},{"name":"anatolib","email":"anatolib@microsoft.com"},{"name":"gaaguiar","email":"gavin.aguiar@microsoft.com"},{"name":"victoriahall","email":"victoriahall@microsoft.com"},{"name":"microsoft-oss-releases","email":"microsoft-oss-publishing@microsoft.com"},{"name":"azure-sdk","email":"azure-sdk-npmjs@microsoft.com"},{"name":"swapnilnagar","email":"swapnilnagar@microsoft.com"},{"name":"microsoft1es","email":"npmjs@microsoft.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/functions-extensions-blob_0.3.0_1775669539470_0.7172223023655344"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-14T17:18:39.037Z","modified":"2026-04-08T17:32:19.835Z","0.1.0-preview":"2025-05-14T17:18:39.313Z","0.2.0-preview":"2025-08-01T18:55:34.942Z","0.3.0":"2026-04-08T17:32:19.608Z"},"bugs":{"url":"https://github.com/Azure/azure-functions-nodejs-extensions/issues"},"author":{"name":"Microsoft"},"license":"MIT","homepage":"https://github.com/Azure/azure-functions-nodejs-extensions-blob#readme","keywords":["azure","azure-functions","serverless","blob","storage"],"repository":{"type":"git","url":"git+https://github.com/Azure/azure-functions-nodejs-extensions.git"},"description":"Node.js Azure Storage Client extension implementations for Azure Functions","maintainers":[{"name":"pgopa","email":"pgopa@microsoft.com"},{"name":"paulbatum","email":"paul.batum@gmail.com"},{"name":"facavalcante","email":"facaval@microsoft.com"},{"name":"ahmelsayed","email":"ahmelsayed@outlook.com"},{"name":"mahoeger","email":"mahoeger@microsoft.com"},{"name":"anatolib","email":"anatolib@microsoft.com"},{"name":"gaaguiar","email":"gavin.aguiar@microsoft.com"},{"name":"victoriahall","email":"victoriahall@microsoft.com"},{"name":"microsoft-oss-releases","email":"microsoft-oss-publishing@microsoft.com"},{"name":"azure-sdk","email":"azure-sdk-npmjs@microsoft.com"},{"name":"swapnilnagar","email":"swapnilnagar@microsoft.com"},{"name":"microsoft1es","email":"npmjs@microsoft.com"}],"readme":"## Azure Functions Node.js Extensions - Blob\r\n\r\nThis project provides extensions for working with Azure Blob Storage in Azure Functions using Node.js. It simplifies the integration and interaction with Blob Storage, enabling developers to build scalable and efficient serverless applications.\r\n\r\n### Features\r\n\r\n-   **Blob Trigger**: Automatically trigger Azure Functions when a blob is created or updated in a specified container.\r\n-   **Blob Input Binding**: Read blob content as input to your function.\r\n-   **Cached Client Management**: Optimized client reuse with intelligent caching\r\n-   **Resource Management**: Proper disposal patterns for Azure resource clients\r\n-   **Performance Optimizations**: Reduced overhead for blob operations\r\n\r\n### Prerequisites\r\n\r\n-   [Node.js](https://nodejs.org/) (LTS version recommended)\r\n-   [Azure Functions Core Tools](https://learn.microsoft.com/azure/azure-functions/functions-run-local)\r\n-   An active [Azure subscription](https://azure.microsoft.com/free/)\r\n\r\n### Installation\r\n\r\nTo install the required dependencies, run:\r\n\r\n```bash\r\nnpm install @azure/functions-extensions-blob\r\n```\r\n\r\n### Usage\r\n\r\n1. **Set up your Azure Blob Storage account**:\r\n\r\n    - Create a storage account in the Azure portal.\r\n    - Create a container within the storage account.\r\n\r\n2. **Configure your function**:\r\n\r\n    - Update the `function.json` file to include the appropriate bindings for Blob Storage.\r\n\r\n3. **Import and initialize the extension:**\r\n\r\n```javascript\r\nimport '@azure/functions-extensions-blob'; // Ensures at the top of the file\r\n```\r\n\r\nUsing in Azure Functions\r\n\r\n```javascript\r\nimport \"@azure/functions-extensions-blob\"; // Ensures side effects run\r\nimport { StorageBlobClient } from \"@azure/functions-extensions-blob\";\r\nimport { app, InvocationContext } from \"@azure/functions\";\r\n\r\nexport async function storageBlobTrigger1(\r\n  blobStorageClient: StorageBlobClient,\r\n  context: InvocationContext\r\n): Promise<void> {\r\n  context.log(\r\n    `Storage blob function processed blob \"${context.triggerMetadata.name}\"`\r\n  );\r\n  try {\r\n     // Use the cached client for better performance\r\n    const downloadBlockBlobResponse =\r\n      await blobStorageClient.blobClient.download();\r\n// Additional operations...\r\n\r\n  }\r\n}\r\n\r\napp.storageBlob(\"storageBlobTrigger1\", {\r\n  path: \"snippets/SomeFolder/{name}\",\r\n  connection: \"AzureWebJobsStorage\",\r\n  sdkBinding: true, //Ensure this is set to true\r\n  handler: storageBlobTrigger1,\r\n});\r\n\r\n\r\n```\r\n\r\n4. **Run locally**:\r\n\r\n-   Use the Azure Functions Core Tools to run your function locally:\r\n    `bash\r\n     func start\r\n     `\r\n\r\n4. **Deploy to Azure**:\r\n\r\n-   Deploy your function to Azure using the following command:\r\n    `bash\r\n      func azure functionapp publish <YourFunctionAppName>\r\n      `\r\n\r\n### Contributing\r\n\r\nContributions are welcome! Please follow the [contribution guidelines](CONTRIBUTING.md) when submitting issues or pull requests.\r\n\r\n### License\r\n\r\nThis project is licensed under the [MIT License](LICENSE).\r\n\r\n### Resources\r\n\r\n-   [Azure Functions Documentation](https://learn.microsoft.com/azure/azure-functions/)\r\n-   [Azure Blob Storage Documentation](https://learn.microsoft.com/azure/storage/blobs/)\r\n-   [Azure SDK for JavaScript](https://learn.microsoft.com/azure/javascript/)\r\n","readmeFilename":"README.md"}