@panorama-industries/effect-vercel-blob 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -0
- package/dist/implementation/blob-live.d.ts +17 -7
- package/dist/implementation/blob-live.d.ts.map +1 -1
- package/dist/implementation/blob-live.js +18 -8
- package/dist/implementation/blob-live.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/implementation/blob-live.ts +36 -11
- package/src/index.ts +1 -1
package/README.md
CHANGED
|
@@ -12,3 +12,24 @@ pnpm add @panorama-industries/effect-vercel-blob effect
|
|
|
12
12
|
|
|
13
13
|
- `effect` `^4.0.6` (peer dependency)
|
|
14
14
|
- ESM only
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
import { BlobStore, blobLayer, BlobLive } from "@panorama-industries/effect-vercel-blob";
|
|
20
|
+
import { Effect, Layer } from "effect";
|
|
21
|
+
import { FetchHttpClient } from "effect/http";
|
|
22
|
+
|
|
23
|
+
// From the environment: BLOB_READ_WRITE_TOKEN, or Vercel OIDC with BLOB_STORE_ID.
|
|
24
|
+
const Blob = BlobLive.pipe(Layer.provide(FetchHttpClient.layer));
|
|
25
|
+
|
|
26
|
+
// Or with explicit values, which take precedence over the environment.
|
|
27
|
+
const BlobWithToken = blobLayer({ token: "vercel_blob_rw_…" }).pipe(
|
|
28
|
+
Layer.provide(FetchHttpClient.layer),
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
const program = Effect.gen(function* () {
|
|
32
|
+
const blob = yield* BlobStore;
|
|
33
|
+
return yield* blob.list();
|
|
34
|
+
}).pipe(Effect.provide(Blob));
|
|
35
|
+
```
|
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
import type { Config } from "effect";
|
|
2
1
|
import type { HttpClient } from "effect/http";
|
|
3
|
-
import { Layer } from "effect";
|
|
2
|
+
import { Config, Layer } from "effect";
|
|
4
3
|
import type { BlobSignedUrls } from "../contracts/blob-signed-urls.ts";
|
|
5
4
|
import type { BlobStore } from "../contracts/blob-store.ts";
|
|
6
5
|
import type { BlobUploads } from "../contracts/blob-uploads.ts";
|
|
6
|
+
import type { BlobConfigOptions } from "./blob-config-live.ts";
|
|
7
7
|
/**
|
|
8
|
-
* Store, signed URLs and upload routes
|
|
9
|
-
* (`
|
|
10
|
-
* `HttpClient
|
|
8
|
+
* Store, signed URLs and upload routes, with the given values taking precedence over the Vercel
|
|
9
|
+
* environment (see `blobConfigLayer`). Provides Vercel OIDC and the system environment itself, so
|
|
10
|
+
* only an `HttpClient` is left to provide, e.g. `FetchHttpClient.layer`.
|
|
11
11
|
*
|
|
12
|
-
* Compose the individual layers instead to
|
|
13
|
-
*
|
|
12
|
+
* Compose the individual layers instead to refresh OIDC tokens in local development
|
|
13
|
+
* (`VercelOidcRefreshingLive`).
|
|
14
|
+
*/
|
|
15
|
+
export declare const blobLayer: (options?: BlobConfigOptions) => Layer.Layer<BlobStore | BlobSignedUrls | BlobUploads, Config.ConfigError, HttpClient.HttpClient>;
|
|
16
|
+
/**
|
|
17
|
+
* {@link blobLayer} with its options read from `Config`, either one `Config` of the options or a
|
|
18
|
+
* record of a `Config` per option, e.g. `blobLayerConfig({ token: Config.Redacted("MY_TOKEN") })`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const blobLayerConfig: (options: Config.Wrap<BlobConfigOptions>) => Layer.Layer<BlobStore | BlobSignedUrls | BlobUploads, Config.ConfigError, HttpClient.HttpClient>;
|
|
21
|
+
/**
|
|
22
|
+
* {@link blobLayer} configured from the Vercel environment alone (`BLOB_READ_WRITE_TOKEN`, or the
|
|
23
|
+
* function's OIDC token with `BLOB_STORE_ID`).
|
|
14
24
|
*/
|
|
15
25
|
export declare const BlobLive: Layer.Layer<BlobStore | BlobSignedUrls | BlobUploads, Config.ConfigError, HttpClient.HttpClient>;
|
|
16
26
|
//# sourceMappingURL=blob-live.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-live.d.ts","sourceRoot":"","sources":["../../src/implementation/blob-live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"blob-live.d.ts","sourceRoot":"","sources":["../../src/implementation/blob-live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAO/D;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,aACX,iBAAiB,KACzB,KAAK,CAAC,KAAK,CACZ,SAAS,GAAG,cAAc,GAAG,WAAW,EACxC,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,UAAU,CAIpB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,eAAe,YACjB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KACtC,KAAK,CAAC,KAAK,CACZ,SAAS,GAAG,cAAc,GAAG,WAAW,EACxC,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,UAAU,CACyC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,KAAK,CAChC,SAAS,GAAG,cAAc,GAAG,WAAW,EACxC,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,UAAU,CACR,CAAC"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import { VercelOidcLive, VercelSystemEnvLive } from "@panorama-industries/effect-vercel-core";
|
|
2
|
-
import { Layer } from "effect";
|
|
3
|
-
import {
|
|
2
|
+
import { Config, Effect, Layer } from "effect";
|
|
3
|
+
import { blobConfigLayer } from "./blob-config-live.js";
|
|
4
4
|
import { BlobSignedUrlsLive } from "./blob-signed-urls-live.js";
|
|
5
5
|
import { BlobStoreLive } from "./blob-store-live.js";
|
|
6
6
|
import { BlobUploadsLive } from "./blob-uploads-live.js";
|
|
7
7
|
/**
|
|
8
|
-
* Store, signed URLs and upload routes
|
|
9
|
-
* (`
|
|
10
|
-
* `HttpClient
|
|
8
|
+
* Store, signed URLs and upload routes, with the given values taking precedence over the Vercel
|
|
9
|
+
* environment (see `blobConfigLayer`). Provides Vercel OIDC and the system environment itself, so
|
|
10
|
+
* only an `HttpClient` is left to provide, e.g. `FetchHttpClient.layer`.
|
|
11
11
|
*
|
|
12
|
-
* Compose the individual layers instead to
|
|
13
|
-
*
|
|
12
|
+
* Compose the individual layers instead to refresh OIDC tokens in local development
|
|
13
|
+
* (`VercelOidcRefreshingLive`).
|
|
14
14
|
*/
|
|
15
|
-
export const
|
|
15
|
+
export const blobLayer = (options = {}) => Layer.mergeAll(BlobStoreLive, BlobSignedUrlsLive, BlobUploadsLive).pipe(Layer.provide(Layer.mergeAll(blobConfigLayer(options), VercelOidcLive, VercelSystemEnvLive)));
|
|
16
|
+
/**
|
|
17
|
+
* {@link blobLayer} with its options read from `Config`, either one `Config` of the options or a
|
|
18
|
+
* record of a `Config` per option, e.g. `blobLayerConfig({ token: Config.Redacted("MY_TOKEN") })`.
|
|
19
|
+
*/
|
|
20
|
+
export const blobLayerConfig = (options) => Layer.unwrap(Effect.map(Config.unwrap(options), blobLayer));
|
|
21
|
+
/**
|
|
22
|
+
* {@link blobLayer} configured from the Vercel environment alone (`BLOB_READ_WRITE_TOKEN`, or the
|
|
23
|
+
* function's OIDC token with `BLOB_STORE_ID`).
|
|
24
|
+
*/
|
|
25
|
+
export const BlobLive = blobLayer();
|
|
16
26
|
//# sourceMappingURL=blob-live.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-live.js","sourceRoot":"","sources":["../../src/implementation/blob-live.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blob-live.js","sourceRoot":"","sources":["../../src/implementation/blob-live.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAO/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,OAAO,GAAsB,EAAE,EAK/B,EAAE,CACF,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,IAAI,CACrE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAC7F,CAAC;AAEJ;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAuC,EAKvC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAIjB,SAAS,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,5 +11,5 @@ export { BlobStoreLive } from "./implementation/blob-store-live.ts";
|
|
|
11
11
|
export { BlobSignedUrlsLive } from "./implementation/blob-signed-urls-live.ts";
|
|
12
12
|
export { BlobUploadsLive } from "./implementation/blob-uploads-live.ts";
|
|
13
13
|
export { ClientTokenPayload, getPayloadFromClientToken } from "./internal/client-token.ts";
|
|
14
|
-
export { BlobLive } from "./implementation/blob-live.ts";
|
|
14
|
+
export { BlobLive, blobLayer, blobLayerConfig } from "./implementation/blob-live.ts";
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,KAAK,iBAAiB,EACtB,cAAc,EACd,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EACL,KAAK,iBAAiB,EACtB,cAAc,EACd,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,5 +11,5 @@ export { BlobStoreLive } from "./implementation/blob-store-live.js";
|
|
|
11
11
|
export { BlobSignedUrlsLive } from "./implementation/blob-signed-urls-live.js";
|
|
12
12
|
export { BlobUploadsLive } from "./implementation/blob-uploads-live.js";
|
|
13
13
|
export { ClientTokenPayload, getPayloadFromClientToken } from "./internal/client-token.js";
|
|
14
|
-
export { BlobLive } from "./implementation/blob-live.js";
|
|
14
|
+
export { BlobLive, blobLayer, blobLayerConfig } from "./implementation/blob-live.js";
|
|
15
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAEL,cAAc,EACd,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAEL,cAAc,EACd,eAAe,GAChB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "../../.vscode/schemas/package.schema.json",
|
|
3
3
|
"name": "@panorama-industries/effect-vercel-blob",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.3.0",
|
|
5
5
|
"description": "Effect-native client for Vercel Blob: uploads, downloads, listing, multipart, signed URLs and browser uploads.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"blob",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"provenance": true
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@panorama-industries/effect-vercel-core": "^0.
|
|
59
|
+
"@panorama-industries/effect-vercel-core": "^0.3.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@vercel/blob": "2.8.2",
|
|
@@ -1,30 +1,55 @@
|
|
|
1
|
-
import type { Config } from "effect";
|
|
2
1
|
import type { HttpClient } from "effect/http";
|
|
3
2
|
|
|
4
3
|
import { VercelOidcLive, VercelSystemEnvLive } from "@panorama-industries/effect-vercel-core";
|
|
5
|
-
import { Layer } from "effect";
|
|
4
|
+
import { Config, Effect, Layer } from "effect";
|
|
6
5
|
|
|
7
6
|
import type { BlobSignedUrls } from "../contracts/blob-signed-urls.ts";
|
|
8
7
|
import type { BlobStore } from "../contracts/blob-store.ts";
|
|
9
8
|
import type { BlobUploads } from "../contracts/blob-uploads.ts";
|
|
9
|
+
import type { BlobConfigOptions } from "./blob-config-live.ts";
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { blobConfigLayer } from "./blob-config-live.ts";
|
|
12
12
|
import { BlobSignedUrlsLive } from "./blob-signed-urls-live.ts";
|
|
13
13
|
import { BlobStoreLive } from "./blob-store-live.ts";
|
|
14
14
|
import { BlobUploadsLive } from "./blob-uploads-live.ts";
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Store, signed URLs and upload routes
|
|
18
|
-
* (`
|
|
19
|
-
* `HttpClient
|
|
17
|
+
* Store, signed URLs and upload routes, with the given values taking precedence over the Vercel
|
|
18
|
+
* environment (see `blobConfigLayer`). Provides Vercel OIDC and the system environment itself, so
|
|
19
|
+
* only an `HttpClient` is left to provide, e.g. `FetchHttpClient.layer`.
|
|
20
20
|
*
|
|
21
|
-
* Compose the individual layers instead to
|
|
22
|
-
*
|
|
21
|
+
* Compose the individual layers instead to refresh OIDC tokens in local development
|
|
22
|
+
* (`VercelOidcRefreshingLive`).
|
|
23
|
+
*/
|
|
24
|
+
export const blobLayer = (
|
|
25
|
+
options: BlobConfigOptions = {},
|
|
26
|
+
): Layer.Layer<
|
|
27
|
+
BlobStore | BlobSignedUrls | BlobUploads,
|
|
28
|
+
Config.ConfigError,
|
|
29
|
+
HttpClient.HttpClient
|
|
30
|
+
> =>
|
|
31
|
+
Layer.mergeAll(BlobStoreLive, BlobSignedUrlsLive, BlobUploadsLive).pipe(
|
|
32
|
+
Layer.provide(Layer.mergeAll(blobConfigLayer(options), VercelOidcLive, VercelSystemEnvLive)),
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* {@link blobLayer} with its options read from `Config`, either one `Config` of the options or a
|
|
37
|
+
* record of a `Config` per option, e.g. `blobLayerConfig({ token: Config.Redacted("MY_TOKEN") })`.
|
|
38
|
+
*/
|
|
39
|
+
export const blobLayerConfig = (
|
|
40
|
+
options: Config.Wrap<BlobConfigOptions>,
|
|
41
|
+
): Layer.Layer<
|
|
42
|
+
BlobStore | BlobSignedUrls | BlobUploads,
|
|
43
|
+
Config.ConfigError,
|
|
44
|
+
HttpClient.HttpClient
|
|
45
|
+
> => Layer.unwrap(Effect.map(Config.unwrap(options), blobLayer));
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* {@link blobLayer} configured from the Vercel environment alone (`BLOB_READ_WRITE_TOKEN`, or the
|
|
49
|
+
* function's OIDC token with `BLOB_STORE_ID`).
|
|
23
50
|
*/
|
|
24
51
|
export const BlobLive: Layer.Layer<
|
|
25
52
|
BlobStore | BlobSignedUrls | BlobUploads,
|
|
26
53
|
Config.ConfigError,
|
|
27
54
|
HttpClient.HttpClient
|
|
28
|
-
> =
|
|
29
|
-
Layer.provide(Layer.mergeAll(BlobConfigLive, VercelOidcLive, VercelSystemEnvLive)),
|
|
30
|
-
);
|
|
55
|
+
> = blobLayer();
|
package/src/index.ts
CHANGED
|
@@ -15,4 +15,4 @@ export { BlobStoreLive } from "./implementation/blob-store-live.ts";
|
|
|
15
15
|
export { BlobSignedUrlsLive } from "./implementation/blob-signed-urls-live.ts";
|
|
16
16
|
export { BlobUploadsLive } from "./implementation/blob-uploads-live.ts";
|
|
17
17
|
export { ClientTokenPayload, getPayloadFromClientToken } from "./internal/client-token.ts";
|
|
18
|
-
export { BlobLive } from "./implementation/blob-live.ts";
|
|
18
|
+
export { BlobLive, blobLayer, blobLayerConfig } from "./implementation/blob-live.ts";
|