@zintrust/core 1.8.1 → 1.8.3

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/bin/z.js CHANGED
@@ -3,6 +3,5 @@
3
3
  * ZinTrust CLI Shortcut - 'z'
4
4
  * Mirrors bin/zintrust.ts for convenience
5
5
  */
6
- const { runCliWrapper } = await import(new URL('./launcher.ts', import.meta.url).href);
6
+ import { runCliWrapper } from './launcher.js';
7
7
  await runCliWrapper();
8
- export {};
package/bin/zin.js CHANGED
@@ -3,6 +3,5 @@
3
3
  * ZinTrust CLI Shortcut - 'zin'
4
4
  * Mirrors bin/zintrust.ts for convenience
5
5
  */
6
- const { runCliWrapper } = await import(new URL('./launcher.ts', import.meta.url).href);
7
- await runCliWrapper({ traceName: 'cli-wrapper' });
8
- export {};
6
+ import { runCliWrapper } from './launcher.js';
7
+ await runCliWrapper();
@@ -1 +1 @@
1
- {"version":3,"file":"zintrust-main.d.ts","sourceRoot":"","sources":["../../bin/zintrust-main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAmaF,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAMzC;AAED,eAAO,MAAM,mBAAmB;;qCAlYQ,MAAM,KAAG,qBAAqB,GAAG,SAAS;mCA6C5C,MAAM,GAAG,IAAI,UAAU,MAAM,CAAC,OAAO,GAAG,IAAI,KAAG,MAAM;iCAnEzD,MAAM;8BAIP,MAAM,KAAG,MAAM;uCAoGtC,qBAAqB,WACpB,MAAM,EAAE,KAChB,OAAO,CAAC,KAAK,CAAC;oCA9FsB,MAAM,sBAAsB,MAAM,KAAG,OAAO;6CAkI7B,MAAM,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;yCA7F1E,MAAM,sBACS,MAAM,QACrB,MAAM,CAAC,UAAU,KACrB,qBAAqB,GAAG,SAAS;EA8WlC,CAAC;AAaH,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"zintrust-main.d.ts","sourceRoot":"","sources":["../../bin/zintrust-main.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,KAAK,qBAAqB,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAwaF,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAMzC;AAED,eAAO,MAAM,mBAAmB;;qCAtYQ,MAAM,KAAG,qBAAqB,GAAG,SAAS;mCA6C5C,MAAM,GAAG,IAAI,UAAU,MAAM,CAAC,OAAO,GAAG,IAAI,KAAG,MAAM;iCAnEzD,MAAM;8BAIP,MAAM,KAAG,MAAM;uCAoGtC,qBAAqB,WACpB,MAAM,EAAE,KAChB,OAAO,CAAC,KAAK,CAAC;oCA9FsB,MAAM,sBAAsB,MAAM,KAAG,OAAO;6CAsI7B,MAAM,EAAE,KAAG,OAAO,CAAC,OAAO,CAAC;yCAjG1E,MAAM,sBACS,MAAM,QACrB,MAAM,CAAC,UAAU,KACrB,qBAAqB,GAAG,SAAS;EAkXlC,CAAC;AAaH,OAAO,EAAE,CAAC"}
@@ -6,9 +6,11 @@
6
6
  */
7
7
  import { spawn } from 'node:child_process';
8
8
  import fs from 'node:fs';
9
+ import { createRequire } from 'node:module';
9
10
  import path from 'node:path';
10
11
  import { fileURLToPath } from 'node:url';
11
12
  const CLI_HANDOFF_ENV_KEY = 'ZINTRUST_CLI_HANDOFF';
13
+ const require = createRequire(import.meta.url);
12
14
  const loadLogger = async () => {
13
15
  try {
14
16
  const { Logger } = await import('../src/config/logger.js');
@@ -103,7 +105,10 @@ const waitForChildTermination = async (child) => {
103
105
  });
104
106
  };
105
107
  const handoffToProjectLocalCli = async (target, rawArgs) => {
106
- const child = spawn(process.execPath, [target.binPath, ...rawArgs], {
108
+ const childArgs = target.binPath.endsWith('.ts')
109
+ ? ['--import', require.resolve('tsx'), target.binPath, ...rawArgs]
110
+ : [target.binPath, ...rawArgs];
111
+ const child = spawn(process.execPath, childArgs, {
107
112
  stdio: 'inherit',
108
113
  env: {
109
114
  ...process.env,
package/bin/zintrust.js CHANGED
@@ -6,6 +6,5 @@
6
6
  * bin/zintrust-main.ts. Keeping the implementation hashbang-free allows other
7
7
  * shortcuts (zin/z/zt) to reuse the same launcher behavior.
8
8
  */
9
- const { runCliWrapper } = await import(new URL('./launcher.ts', import.meta.url).href);
9
+ import { runCliWrapper } from './launcher.js';
10
10
  await runCliWrapper();
11
- export {};
package/bin/zt.js CHANGED
@@ -3,6 +3,5 @@
3
3
  * ZinTrust CLI Shortcut - 'zt'
4
4
  * Mirrors bin/zintrust.ts for convenience
5
5
  */
6
- const { runCliWrapper } = await import(new URL('./launcher.ts', import.meta.url).href);
6
+ import { runCliWrapper } from './launcher.js';
7
7
  await runCliWrapper();
8
- export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zintrust/core",
3
- "version": "1.8.1",
3
+ "version": "1.8.3",
4
4
  "description": "Production-grade TypeScript backend framework for JavaScript",
5
5
  "homepage": "https://zintrust.com",
6
6
  "repository": {
@@ -59,7 +59,7 @@
59
59
  "dependencies": {
60
60
  "@cloudflare/containers": "^0.3.3",
61
61
  "bcryptjs": "^3.0.3",
62
- "bullmq": "^5.76.5",
62
+ "bullmq": "^5.76.6",
63
63
  "chalk": "^5.6.2",
64
64
  "commander": "^14.0.3",
65
65
  "inquirer": "^13.4.2",
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/boot/registry/runtime.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA0Q9C,eAAO,MAAM,8BAA8B,GAAI,iBAAiB,gBAAgB,KAAG,IA6BlF,CAAC;AAyVF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,gBAAgB,CAAC;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AA4HF,eAAO,MAAM,eAAe,GAC1B,QAAQ,eAAe,KACtB;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAK5D,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../../src/boot/registry/runtime.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAUvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA6Q9C,eAAO,MAAM,8BAA8B,GAAI,iBAAiB,gBAAgB,KAAG,IA6BlF,CAAC;AAyVF,KAAK,eAAe,GAAG;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,EAAE,gBAAgB,CAAC;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC,CAAC;AA4HF,eAAO,MAAM,eAAe,GAC1B,QAAQ,eAAe,KACtB;IAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAK5D,CAAC"}
@@ -126,7 +126,9 @@ const appConfig = readRuntimeConfig('appConfig', {
126
126
  });
127
127
  // exported solely for tests to exercise the default detectRuntime handler
128
128
  const cacheConfig = readRuntimeConfig('cacheConfig', RuntimeConfig.cacheConfig);
129
- const storageConfig = readRuntimeConfig('storageConfig', RuntimeConfig.storageConfig);
129
+ const getStorageConfig = () => {
130
+ return readRuntimeConfig('storageConfig', RuntimeConfig.storageConfig);
131
+ };
130
132
  const getDatabaseConfig = () => {
131
133
  return readRuntimeConfig('databaseConfig', liveDatabaseConfig);
132
134
  };
@@ -149,7 +151,7 @@ const registerFromRuntimeConfig = async () => {
149
151
  default: broadcastConfig.default,
150
152
  drivers: broadcastConfig.drivers,
151
153
  });
152
- registerDisksFromRuntimeConfig(storageConfig);
154
+ registerDisksFromRuntimeConfig(getStorageConfig());
153
155
  registerNotificationChannelsFromRuntimeConfig({
154
156
  default: notificationConfig.default,
155
157
  drivers: notificationConfig.drivers,
@@ -1 +1 @@
1
- {"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0EH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,OAAO,CAAC;CACvB;AAmQD;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;cACJ,IAAI;EAed,CAAC"}
1
+ {"version":3,"file":"CLI.d.ts","sourceRoot":"","sources":["../../../src/cli/CLI.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0EH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,MAAM,WAAW,IAAI;IACnB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,IAAI,OAAO,CAAC;CACvB;AAqQD;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG;cACJ,IAAI;EAed,CAAC"}
package/src/cli/CLI.js CHANGED
@@ -270,7 +270,9 @@ const runCLI = async (program, version, args) => {
270
270
  // Run version check in background (non-blocking)
271
271
  VersionChecker.runVersionCheck().catch((error) => {
272
272
  // Version check should never crash the CLI
273
- Logger.debug('Version check encountered an error', error);
273
+ if (typeof Logger.debug === 'function') {
274
+ Logger.debug('Version check encountered an error', error);
275
+ }
274
276
  });
275
277
  // Show help if no arguments provided
276
278
  if (args.length === 0) {
package/src/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @zintrust/core v1.8.1
2
+ * @zintrust/core v1.8.3
3
3
  *
4
4
  * ZinTrust Framework - Production-Grade TypeScript Backend
5
5
  * Built for performance, type safety, and exceptional developer experience
6
6
  *
7
7
  * Build Information:
8
- * Built: 2026-05-06T10:16:32.881Z
8
+ * Built: 2026-05-08T12:00:25.928Z
9
9
  * Node: >=20.0.0
10
10
  * License: MIT
11
11
  *
@@ -21,7 +21,7 @@
21
21
  * Available at runtime for debugging and health checks
22
22
  */
23
23
  export const ZINTRUST_VERSION = '0.1.41';
24
- export const ZINTRUST_BUILD_DATE = '2026-05-06T10:16:32.847Z'; // Replaced during build
24
+ export const ZINTRUST_BUILD_DATE = '2026-05-08T12:00:25.882Z'; // Replaced during build
25
25
  export { Application } from './boot/Application.js';
26
26
  export { AwsSigV4 } from './common/index.js';
27
27
  export { SignedRequest } from './security/SignedRequest.js';
@@ -1 +1 @@
1
- {"version":3,"file":"R2.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/R2.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAyBF,eAAO,MAAM,QAAQ;kCAET,QAAQ,OACX,MAAM,YACD,OAAO,GAChB,OAAO,CAAC,qBAAqB,CAAC;uBAOvB,QAAQ,OACX,MAAM,YACD,MAAM,cACJ,MAAM,SACX,OAAO,YACJ,OAAO,GAChB,OAAO,CAAC,cAAc,CAAC;oCAOhB,QAAQ,OACX,MAAM,YACD,MAAM,iBACD,cAAc,EAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;iCAOiB,QAAQ,OAAO,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAMxE,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAkBjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBAapC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAaxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAa9C,QAAQ,OAAO,MAAM,GAAG,MAAM;oBAQhC,QAAQ,OACX,MAAM,YACD;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GACvD,MAAM;EAgBT,CAAC;AAEH,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"R2.d.ts","sourceRoot":"","sources":["../../../../../src/tools/storage/drivers/R2.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA6EF,eAAO,MAAM,QAAQ;kCAET,QAAQ,OACX,MAAM,YACD,OAAO,GAChB,OAAO,CAAC,qBAAqB,CAAC;uBAOvB,QAAQ,OACX,MAAM,YACD,MAAM,cACJ,MAAM,SACX,OAAO,YACJ,OAAO,GAChB,OAAO,CAAC,cAAc,CAAC;oCAOhB,QAAQ,OACX,MAAM,YACD,MAAM,iBACD,cAAc,EAAE,GAC9B,OAAO,CAAC,MAAM,CAAC;iCAOiB,QAAQ,OAAO,MAAM,YAAY,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAMxE,QAAQ,OAAO,MAAM,WAAW,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBAyBjE,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBAmBpC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;mBAmBxC,QAAQ,OAAO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;gBAmB9C,QAAQ,OAAO,MAAM,GAAG,MAAM;oBAQhC,QAAQ,OACX,MAAM,YACD;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GACvD,MAAM;EAgBT,CAAC;AAEH,eAAe,QAAQ,CAAC"}
@@ -1,36 +1,70 @@
1
- import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
2
1
  import { Cloudflare } from '../../../config/cloudflare.js';
2
+ import { ErrorFactory } from '../../../exceptions/ZintrustError.js';
3
3
  import { S3Driver } from '../drivers/S3.js';
4
4
  const resolveWorkersBucket = (config) => {
5
5
  const binding = Cloudflare.getR2Binding(config.binding);
6
- if (binding === null || typeof binding.createMultipartUpload !== 'function') {
7
- throw ErrorFactory.createConfigError('R2 multipart requires a Workers R2 binding (set config.binding or R2_BUCKET/R2/BUCKET).');
6
+ if (binding === null || typeof binding !== 'object') {
7
+ throw ErrorFactory.createConfigError('R2 requires a Workers R2 binding (set config.binding or R2_BUCKET/R2/BUCKET).');
8
8
  }
9
9
  return binding;
10
10
  };
11
+ const resolveWorkersMultipartBucket = (config) => {
12
+ const binding = resolveWorkersBucket(config);
13
+ if (typeof binding.createMultipartUpload !== 'function') {
14
+ throw ErrorFactory.createConfigError('R2 multipart requires a Workers R2 binding with multipart support (set config.binding or R2_BUCKET/R2/BUCKET).');
15
+ }
16
+ return binding;
17
+ };
18
+ const resolveWorkersObjectBody = async (object) => {
19
+ if (object === null || object === undefined) {
20
+ throw ErrorFactory.createNotFoundError('R2 get failed', { status: 404 });
21
+ }
22
+ if (typeof object === 'object' &&
23
+ object !== null &&
24
+ 'arrayBuffer' in object &&
25
+ typeof object.arrayBuffer === 'function') {
26
+ return Buffer.from(await object.arrayBuffer());
27
+ }
28
+ if (typeof object === 'object' &&
29
+ object !== null &&
30
+ 'body' in object &&
31
+ object.body instanceof Uint8Array) {
32
+ return Buffer.from(object.body);
33
+ }
34
+ throw ErrorFactory.createConfigError('R2 get failed: unsupported Workers object body');
35
+ };
36
+ const hasWorkersBucketBinding = (config) => {
37
+ return Cloudflare.getR2Binding(config.binding) !== null;
38
+ };
11
39
  export const R2Driver = Object.freeze({
12
40
  async createMultipartUpload(config, key, options) {
13
- const bucket = resolveWorkersBucket(config);
41
+ const bucket = resolveWorkersMultipartBucket(config);
14
42
  const upload = await bucket.createMultipartUpload(key, options);
15
43
  return { key: upload.key ?? key, uploadId: upload.uploadId };
16
44
  },
17
45
  async uploadPart(config, key, uploadId, partNumber, value, options) {
18
- const bucket = resolveWorkersBucket(config);
46
+ const bucket = resolveWorkersMultipartBucket(config);
19
47
  const upload = bucket.resumeMultipartUpload(key, uploadId);
20
48
  return upload.uploadPart(partNumber, value, options);
21
49
  },
22
50
  async completeMultipartUpload(config, key, uploadId, uploadedParts) {
23
- const bucket = resolveWorkersBucket(config);
51
+ const bucket = resolveWorkersMultipartBucket(config);
24
52
  const upload = bucket.resumeMultipartUpload(key, uploadId);
25
53
  await upload.complete(uploadedParts);
26
54
  return R2Driver.url(config, key);
27
55
  },
28
56
  async abortMultipartUpload(config, key, uploadId) {
29
- const bucket = resolveWorkersBucket(config);
57
+ const bucket = resolveWorkersMultipartBucket(config);
30
58
  const upload = bucket.resumeMultipartUpload(key, uploadId);
31
59
  await upload.abort();
32
60
  },
33
61
  async put(config, key, content) {
62
+ if (hasWorkersBucketBinding(config)) {
63
+ const bucket = resolveWorkersBucket(config);
64
+ const body = typeof content === 'string' ? content : Buffer.from(content);
65
+ await bucket.put(key, body);
66
+ return R2Driver.url(config, key);
67
+ }
34
68
  if (typeof config.endpoint !== 'string' || config.endpoint.trim() === '') {
35
69
  throw ErrorFactory.createConfigError('R2: missing endpoint');
36
70
  }
@@ -46,6 +80,11 @@ export const R2Driver = Object.freeze({
46
80
  return S3Driver.put(s3Config, key, content);
47
81
  },
48
82
  async get(config, key) {
83
+ if (hasWorkersBucketBinding(config)) {
84
+ const bucket = resolveWorkersBucket(config);
85
+ const object = await bucket.get(key);
86
+ return resolveWorkersObjectBody(object);
87
+ }
49
88
  const s3Config = {
50
89
  bucket: config.bucket,
51
90
  region: config.region ?? 'auto',
@@ -57,6 +96,11 @@ export const R2Driver = Object.freeze({
57
96
  return S3Driver.get(s3Config, key);
58
97
  },
59
98
  async exists(config, key) {
99
+ if (hasWorkersBucketBinding(config)) {
100
+ const bucket = resolveWorkersBucket(config);
101
+ const object = await bucket.head(key);
102
+ return object !== null;
103
+ }
60
104
  const s3Config = {
61
105
  bucket: config.bucket,
62
106
  region: config.region ?? 'auto',
@@ -68,6 +112,11 @@ export const R2Driver = Object.freeze({
68
112
  return S3Driver.exists(s3Config, key);
69
113
  },
70
114
  async delete(config, key) {
115
+ if (hasWorkersBucketBinding(config)) {
116
+ const bucket = resolveWorkersBucket(config);
117
+ await bucket.delete(key);
118
+ return;
119
+ }
71
120
  const s3Config = {
72
121
  bucket: config.bucket,
73
122
  region: config.region ?? 'auto',
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/storage/index.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,CAAC;AAsFrE,eAAO,MAAM,OAAO;mBACH,MAAM,GAAG,WAAW;cAuCnB,MAAM,GAAG,SAAS,QAAQ,MAAM,YAAY,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAW7E,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iBAW/C,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;iBASnD,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cASzD,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,MAAM;kBAY/B,MAAM,GAAG,SAAS,QAAQ,MAAM,YAAY,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;EAqBhG,CAAC;AAEH,eAAe,OAAO,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/storage/index.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,CAAC;AAuFrE,eAAO,MAAM,OAAO;mBACH,MAAM,GAAG,WAAW;cAuCnB,MAAM,GAAG,SAAS,QAAQ,MAAM,YAAY,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAW7E,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;iBAW/C,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;iBASnD,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cASzD,MAAM,GAAG,SAAS,QAAQ,MAAM,GAAG,MAAM;kBAY/B,MAAM,GAAG,SAAS,QAAQ,MAAM,YAAY,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;EAqBhG,CAAC;AAEH,eAAe,OAAO,CAAC;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -23,6 +23,7 @@ const normalizers = {
23
23
  secretAccessKey: String(raw['secretAccessKey'] ?? raw['secret'] ?? ''),
24
24
  endpoint: typeof raw['endpoint'] === 'string' ? raw['endpoint'] : undefined,
25
25
  url: typeof raw['url'] === 'string' ? raw['url'] : undefined,
26
+ binding: typeof raw['binding'] === 'string' ? raw['binding'] : undefined,
26
27
  }),
27
28
  gcs: (raw) => ({
28
29
  bucket: String(raw['bucket'] ?? ''),