@umituz/web-cloudflare 1.4.1 → 1.4.2

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 CHANGED
@@ -177,7 +177,7 @@ const versions = await wrangler.versionsList();
177
177
  await wrangler.versionsRollback(versions[0].id);
178
178
  ```
179
179
 
180
- **Note:** Wrangler CLI, Workers, and AI Gateway services now follow Domain-Driven Design (DDD) architecture with their own domain structures at `src/domains/wrangler/`, `src/domains/workers/`, and `src/domains/ai-gateway/`.
180
+ **Note:** Wrangler CLI, Workers, AI Gateway, and R2 services now follow Domain-Driven Design (DDD) architecture with their own domain structures at `src/domains/wrangler/`, `src/domains/workers/`, `src/domains/ai-gateway/`, and `src/domains/r2/`.
181
181
 
182
182
  ## 📚 Subpath Exports
183
183
 
@@ -190,8 +190,8 @@ import { WorkersService, workersService } from '@umituz/web-cloudflare/workers';
190
190
  // KV cache
191
191
  import { KVService } from '@umituz/web-cloudflare/kv';
192
192
 
193
- // R2 storage
194
- import { R2Service } from '@umituz/web-cloudflare/r2';
193
+ // R2 storage (now in domains/)
194
+ import { R2Service, r2Service } from '@umituz/web-cloudflare/r2';
195
195
 
196
196
  // D1 database
197
197
  import { D1Service } from '@umituz/web-cloudflare/d1';
@@ -669,13 +669,19 @@ Contributions are welcome!
669
669
  │ │ │ ├── entities/ # Domain entities
670
670
  │ │ │ ├── services/ # Domain services
671
671
  │ │ │ ├── types/ # Domain types
672
+ │ │ │ ├── examples/ # Example files
672
673
  │ │ │ └── index.ts # Domain exports
673
- │ │ └── ai-gateway/ # AI Gateway domain
674
+ │ │ ├── ai-gateway/ # AI Gateway domain
675
+ │ │ │ ├── entities/ # Domain entities
676
+ │ │ │ ├── services/ # Domain services
677
+ │ │ │ └── index.ts # Domain exports
678
+ │ │ └── r2/ # R2 storage domain
674
679
  │ │ ├── entities/ # Domain entities
675
680
  │ │ ├── services/ # Domain services
681
+ │ │ ├── types/ # Domain types
676
682
  │ │ └── index.ts # Domain exports
677
683
  │ ├── infrastructure/
678
- │ │ ├── services/ # Services (kv, r2, d1, etc.)
684
+ │ │ ├── services/ # Services (kv, d1, etc.)
679
685
  │ │ ├── router/ # Express-like router
680
686
  │ │ ├── middleware/ # Middleware collection
681
687
  │ │ └── utils/ # Helper functions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umituz/web-cloudflare",
3
- "version": "1.4.1",
3
+ "version": "1.4.2",
4
4
  "description": "Comprehensive Cloudflare Workers integration with config-based patterns, middleware, router, workflows, and AI (Patch-only versioning: only z in x.y.z increments)",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -9,7 +9,7 @@
9
9
  ".": "./src/index.ts",
10
10
  "./workers": "./src/domains/workers/index.ts",
11
11
  "./kv": "./src/infrastructure/services/kv/index.ts",
12
- "./r2": "./src/infrastructure/services/r2/index.ts",
12
+ "./r2": "./src/domains/r2/index.ts",
13
13
  "./d1": "./src/infrastructure/services/d1/index.ts",
14
14
  "./images": "./src/infrastructure/services/images/index.ts",
15
15
  "./analytics": "./src/infrastructure/services/analytics/index.ts",
@@ -0,0 +1,13 @@
1
+ /**
2
+ * R2 Domain
3
+ * Complete Cloudflare R2 object storage integration
4
+ */
5
+
6
+ // Entities
7
+ export * from './entities';
8
+
9
+ // Types
10
+ export * from './types';
11
+
12
+ // Services
13
+ export * from './services';
@@ -5,3 +5,4 @@
5
5
 
6
6
  export { R2Service, r2Service } from "./r2.service";
7
7
  export type { R2UploadOptions, R2CacheOptions } from "./r2.service";
8
+ export type { IR2Service } from '../types';
@@ -3,9 +3,9 @@
3
3
  * @description Cloudflare R2 object storage operations
4
4
  */
5
5
 
6
- import type { R2Object, R2ListOptions, R2ListResult, R2PutOptions, R2PresignedURL } from "../../../domain/entities/r2.entity";
6
+ import type { R2Object, R2ListOptions, R2ListResult, R2PutOptions, R2PresignedURL } from "../entities";
7
7
  import type { IR2Service } from "../../../domain/interfaces/services.interface";
8
- import { validationUtils } from "../../utils";
8
+ import { validationUtils } from "../../../infrastructure/utils";
9
9
 
10
10
  export interface R2UploadOptions extends R2PutOptions {
11
11
  readonly binding?: string;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * R2 Domain Types
3
+ */
4
+
5
+ export * from './service.interface';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * R2 Service Interface
3
+ * @description Abstract interface for R2 storage operations
4
+ */
5
+
6
+ import type { R2Object, R2ListOptions, R2ListResult, R2PutOptions, R2PresignedURL } from '../entities';
7
+
8
+ export interface IR2Service {
9
+ get(key: string, binding?: string): Promise<R2Object | null>;
10
+ put(key: string, data: ReadableStream | ArrayBuffer | string, options?: R2PutOptions): Promise<void>;
11
+ delete(key: string, binding?: string): Promise<boolean>;
12
+ list(options?: R2ListOptions): Promise<R2ListResult>;
13
+ getPresignedURL(key: string, expiresIn?: number): Promise<R2PresignedURL>;
14
+ }
package/src/index.ts CHANGED
@@ -29,8 +29,8 @@
29
29
  export * from "./domains/wrangler";
30
30
  export * from "./domains/workers";
31
31
  export * from "./domains/ai-gateway";
32
+ export * from "./domains/r2";
32
33
  export * from "./infrastructure/services/kv";
33
- export * from "./infrastructure/services/r2";
34
34
  export * from "./infrastructure/services/d1";
35
35
  export * from "./infrastructure/services/images";
36
36
  export * from "./infrastructure/services/analytics";