@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 +1 -2
- package/bin/zin.js +2 -3
- package/bin/zintrust-main.d.ts.map +1 -1
- package/bin/zintrust-main.js +6 -1
- package/bin/zintrust.js +1 -2
- package/bin/zt.js +1 -2
- package/package.json +2 -2
- package/src/boot/registry/runtime.d.ts.map +1 -1
- package/src/boot/registry/runtime.js +4 -2
- package/src/cli/CLI.d.ts.map +1 -1
- package/src/cli/CLI.js +3 -1
- package/src/index.js +3 -3
- package/src/tools/storage/drivers/R2.d.ts.map +1 -1
- package/src/tools/storage/drivers/R2.js +56 -7
- package/src/tools/storage/index.d.ts.map +1 -1
- package/src/tools/storage/index.js +1 -0
package/bin/z.js
CHANGED
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
|
-
|
|
7
|
-
await runCliWrapper(
|
|
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;
|
|
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"}
|
package/bin/zintrust-main.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
9
|
+
import { runCliWrapper } from './launcher.js';
|
|
10
10
|
await runCliWrapper();
|
|
11
|
-
export {};
|
package/bin/zt.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zintrust/core",
|
|
3
|
-
"version": "1.8.
|
|
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.
|
|
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;
|
|
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
|
|
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(
|
|
154
|
+
registerDisksFromRuntimeConfig(getStorageConfig());
|
|
153
155
|
registerNotificationChannelsFromRuntimeConfig({
|
|
154
156
|
default: notificationConfig.default,
|
|
155
157
|
drivers: notificationConfig.drivers,
|
package/src/cli/CLI.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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.
|
|
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-
|
|
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-
|
|
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;
|
|
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
|
|
7
|
-
throw ErrorFactory.createConfigError('R2
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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;
|
|
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'] ?? ''),
|