From dda35d57a28f66f96a0482b61aafeec4f90398aa Mon Sep 17 00:00:00 2001 From: Philippe Serhal Date: Sun, 15 Sep 2024 17:45:28 -0400 Subject: [PATCH] chore(deps): support @netlify/blobs v8 The peer dependency only specifies support for v6 and v7, but v8 works just fine. This adds v8 to the peer dependencies, bumps the dev dep to v8, updates the tests (there's a new requirement that's specific to unusual use cases like unstorage's tests, which are run outside of the Netlify platform and the Netlify CLI), and adjust the driver types to ensure compatibility with all supported versions. See https://github.com/netlify/blobs/pull/183. I believe @netlify/blobs@8 will error in local dev when using netlify-cli before 17.21.1. This doesn't seem like unstorage's problem though, so I didn't do anything about that here. --- package.json | 4 ++-- pnpm-lock.yaml | 10 +++++----- src/drivers/netlify-blobs.ts | 6 ++++++ test/drivers/netlify-blobs.test.ts | 2 ++ 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index a545e261..0d20aab5 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@azure/storage-blob": "^12.24.0", "@capacitor/preferences": "^6.0.2", "@cloudflare/workers-types": "^4.20240903.0", - "@netlify/blobs": "^7.4.0", + "@netlify/blobs": "^8.0.1", "@planetscale/database": "^1.19.0", "@types/ioredis-mock": "^8.2.5", "@types/jsdom": "^21.1.7", @@ -105,7 +105,7 @@ "@azure/keyvault-secrets": "^4.8.0", "@azure/storage-blob": "^12.24.0", "@capacitor/preferences": "^6.0.2", - "@netlify/blobs": "^6.5.0 || ^7.0.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.0.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.0", "@vercel/kv": "^1.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cd0eacae..d50720ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,8 +64,8 @@ importers: specifier: ^4.20240903.0 version: 4.20240903.0 '@netlify/blobs': - specifier: ^7.4.0 - version: 7.4.0 + specifier: ^8.0.1 + version: 8.0.1 '@planetscale/database': specifier: ^1.19.0 version: 1.19.0 @@ -857,8 +857,8 @@ packages: resolution: {integrity: sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==} engines: {node: '>=14'} - '@netlify/blobs@7.4.0': - resolution: {integrity: sha512-7rdPzo8bggt3D2CVO+U1rmEtxxs8X7cLusDbHZRJaMlxqxBD05mXgThj5DUJMFOvmfVjhEH/S/3AyiLUbDQGDg==} + '@netlify/blobs@8.0.1': + resolution: {integrity: sha512-IrZHVqillU0x12eDbsap4Ba6poi+4IdVCYjZa+tA0eD95TaSbSqfw1zNkO27MiKw0pOjPB6+RXFK4pdfOs/qUQ==} engines: {node: ^14.16.0 || >=16.0.0} '@nodelib/fs.scandir@2.1.5': @@ -5110,7 +5110,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@netlify/blobs@7.4.0': {} + '@netlify/blobs@8.0.1': {} '@nodelib/fs.scandir@2.1.5': dependencies: diff --git a/src/drivers/netlify-blobs.ts b/src/drivers/netlify-blobs.ts index 62d713ed..c1df8e6b 100644 --- a/src/drivers/netlify-blobs.ts +++ b/src/drivers/netlify-blobs.ts @@ -33,6 +33,11 @@ export interface NetlifyDeployStoreOptions extends NetlifyBaseStoreOptions { deployID?: string; } +export interface NetlifyDeployStoreV8Options extends NetlifyDeployStoreOptions { + // TODO(serhalp) Export this type from @netlify/blobs instead + region?: "us-east-1" | "us-east-2"; +} + export interface NetlifyNamedStoreOptions extends NetlifyBaseStoreOptions { name: string; deployScoped?: false; @@ -40,6 +45,7 @@ export interface NetlifyNamedStoreOptions extends NetlifyBaseStoreOptions { export type NetlifyStoreOptions = | NetlifyDeployStoreOptions + | NetlifyDeployStoreV8Options | NetlifyNamedStoreOptions; export default defineDriver((options: NetlifyStoreOptions) => { diff --git a/test/drivers/netlify-blobs.test.ts b/test/drivers/netlify-blobs.test.ts index 00a406ac..8688f9f5 100644 --- a/test/drivers/netlify-blobs.test.ts +++ b/test/drivers/netlify-blobs.test.ts @@ -39,6 +39,8 @@ describe("drivers: netlify-blobs", async () => { token, siteID, deployID: "test", + // Usually defaulted via the environment; only required in a test environment like this + region: "us-east-1", }), });