alchemy 0.76.1 → 0.77.1
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/alchemy.js +109 -29
- package/bin/services/execute-alchemy.ts +10 -1
- package/lib/aws/ec2/index.d.ts +1 -0
- package/lib/aws/ec2/index.d.ts.map +1 -1
- package/lib/aws/ec2/index.js +1 -0
- package/lib/aws/ec2/index.js.map +1 -1
- package/lib/aws/index.d.ts +1 -7
- package/lib/aws/index.d.ts.map +1 -1
- package/lib/aws/index.js +1 -8
- package/lib/aws/index.js.map +1 -1
- package/lib/cloudflare/bucket-custom-domain.d.ts +90 -0
- package/lib/cloudflare/bucket-custom-domain.d.ts.map +1 -0
- package/lib/cloudflare/bucket-custom-domain.js +81 -0
- package/lib/cloudflare/bucket-custom-domain.js.map +1 -0
- package/lib/cloudflare/bucket.d.ts +28 -4
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +41 -14
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.d.ts.map +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.js +0 -3
- package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +8 -5
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/d1-database.d.ts +13 -3
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +31 -15
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/index.d.ts +1 -0
- package/lib/cloudflare/index.d.ts.map +1 -1
- package/lib/cloudflare/index.js +1 -0
- package/lib/cloudflare/index.js.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/remote-binding-proxy.js +73 -9
- package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
- package/lib/cloudflare/react-router/plugin.d.ts +2 -1
- package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
- package/lib/cloudflare/react-router/plugin.js +6 -14
- package/lib/cloudflare/react-router/plugin.js.map +1 -1
- package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
- package/lib/cloudflare/vite/plugin.js +0 -3
- package/lib/cloudflare/vite/plugin.js.map +1 -1
- package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
- package/lib/cloudflare/worker-bundle.js +17 -0
- package/lib/cloudflare/worker-bundle.js.map +1 -1
- package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
- package/lib/cloudflare/worker-metadata.js +6 -4
- package/lib/cloudflare/worker-metadata.js.map +1 -1
- package/lib/cloudflare/worker-subdomain.d.ts.map +1 -1
- package/lib/cloudflare/worker-subdomain.js +0 -1
- package/lib/cloudflare/worker-subdomain.js.map +1 -1
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +28 -38
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +2 -281
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +23 -11
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/docker/api.d.ts +4 -0
- package/lib/docker/api.d.ts.map +1 -1
- package/lib/docker/api.js +3 -0
- package/lib/docker/api.js.map +1 -1
- package/lib/docker/image.d.ts +50 -12
- package/lib/docker/image.d.ts.map +1 -1
- package/lib/docker/image.js +86 -58
- package/lib/docker/image.js.map +1 -1
- package/lib/docker/remote-image.d.ts +1 -0
- package/lib/docker/remote-image.d.ts.map +1 -1
- package/lib/docker/remote-image.js +2 -0
- package/lib/docker/remote-image.js.map +1 -1
- package/lib/encrypt.d.ts +28 -3
- package/lib/encrypt.d.ts.map +1 -1
- package/lib/encrypt.js +77 -3
- package/lib/encrypt.js.map +1 -1
- package/lib/planetscale/role.d.ts +9 -0
- package/lib/planetscale/role.d.ts.map +1 -1
- package/lib/planetscale/role.js +18 -3
- package/lib/planetscale/role.js.map +1 -1
- package/lib/prisma-postgres/api.d.ts.map +1 -1
- package/lib/prisma-postgres/api.js +1 -0
- package/lib/prisma-postgres/api.js.map +1 -1
- package/lib/scope.d.ts +5 -0
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +23 -0
- package/lib/scope.js.map +1 -1
- package/lib/serde.js +1 -1
- package/lib/serde.js.map +1 -1
- package/lib/util/telemetry.js +4 -0
- package/lib/util/telemetry.js.map +1 -1
- package/package.json +12 -10
- package/src/aws/ec2/index.ts +1 -0
- package/src/aws/index.ts +1 -9
- package/src/cloudflare/bucket-custom-domain.ts +281 -0
- package/src/cloudflare/bucket.ts +85 -18
- package/src/cloudflare/cloudflare-env-proxy.ts +0 -3
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/container.ts +10 -7
- package/src/cloudflare/d1-database.ts +44 -6
- package/src/cloudflare/index.ts +1 -0
- package/src/cloudflare/miniflare/remote-binding-proxy.ts +80 -9
- package/src/cloudflare/react-router/plugin.ts +9 -21
- package/src/cloudflare/vite/plugin.ts +0 -3
- package/src/cloudflare/worker-bundle.ts +28 -1
- package/src/cloudflare/worker-metadata.ts +8 -4
- package/src/cloudflare/worker-subdomain.ts +0 -1
- package/src/cloudflare/worker.ts +32 -45
- package/src/cloudflare/wrangler.json.ts +62 -397
- package/src/docker/api.ts +7 -0
- package/src/docker/image.ts +164 -89
- package/src/docker/remote-image.ts +3 -0
- package/src/encrypt.ts +115 -3
- package/src/planetscale/role.ts +30 -3
- package/src/prisma-postgres/api.ts +1 -0
- package/src/scope.ts +27 -0
- package/src/serde.ts +1 -1
- package/src/util/telemetry.ts +5 -0
- package/workers/cloudflare-state-store.js +4802 -8
- package/workers/dofs-state-store.js +632 -2
- package/workers/remote-binding-proxy.js +1929 -3
- package/workers/tunnel-proxy.js +58 -6
- package/workers/tunnel-proxy.ts +1 -1
package/bin/alchemy.js
CHANGED
|
@@ -36534,32 +36534,75 @@ var Lock = class {
|
|
|
36534
36534
|
|
|
36535
36535
|
//#endregion
|
|
36536
36536
|
//#region src/encrypt.ts
|
|
36537
|
+
const KEY_LEN = 32;
|
|
36538
|
+
const SCRYPT_N = 16384;
|
|
36539
|
+
const SCRYPT_R = 8;
|
|
36540
|
+
const SCRYPT_P = 1;
|
|
36541
|
+
const SALT_LEN = 16;
|
|
36542
|
+
const IV_LEN = 12;
|
|
36543
|
+
const ALGO = "aes-256-gcm";
|
|
36537
36544
|
/**
|
|
36538
|
-
*
|
|
36539
|
-
*
|
|
36540
|
-
*
|
|
36541
|
-
* @param key - The encryption key
|
|
36542
|
-
* @returns The base64-encoded encrypted value with nonce
|
|
36545
|
+
* Decrypts a value encrypted with a symmetric key.
|
|
36546
|
+
* For backwards compatibility, uses the legacy libsodium implementation if the value is a string.
|
|
36547
|
+
* Otherwise, uses the AES-256-GCM implementation with scrypt key derivation.
|
|
36543
36548
|
*/
|
|
36544
|
-
|
|
36545
|
-
|
|
36546
|
-
|
|
36547
|
-
|
|
36548
|
-
|
|
36549
|
-
|
|
36550
|
-
|
|
36551
|
-
|
|
36552
|
-
|
|
36553
|
-
|
|
36549
|
+
function decryptWithKey(value, key) {
|
|
36550
|
+
if (typeof value === "string") return libsodiumDecrypt(value, key);
|
|
36551
|
+
return aes256Decrypt(value, key);
|
|
36552
|
+
}
|
|
36553
|
+
/**
|
|
36554
|
+
* Encrypt a value with a symmetric key using AES-256-GCM with scrypt key derivation.
|
|
36555
|
+
*/
|
|
36556
|
+
async function encrypt(value, passphrase) {
|
|
36557
|
+
const salt = crypto$1.randomBytes(SALT_LEN);
|
|
36558
|
+
const key = await deriveScryptKey(passphrase, salt);
|
|
36559
|
+
const iv = crypto$1.randomBytes(IV_LEN);
|
|
36560
|
+
const cipher = crypto$1.createCipheriv(ALGO, key, iv);
|
|
36561
|
+
const ciphertext = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
|
|
36562
|
+
const tag = cipher.getAuthTag();
|
|
36563
|
+
return {
|
|
36564
|
+
version: "v1",
|
|
36565
|
+
ciphertext: ciphertext.toString("base64"),
|
|
36566
|
+
iv: iv.toString("base64"),
|
|
36567
|
+
salt: salt.toString("base64"),
|
|
36568
|
+
tag: tag.toString("base64")
|
|
36569
|
+
};
|
|
36554
36570
|
}
|
|
36555
36571
|
/**
|
|
36556
|
-
* Decrypt a value encrypted with a symmetric key
|
|
36572
|
+
* Decrypt a value encrypted with a symmetric key using AES-256-GCM with scrypt key derivation.
|
|
36573
|
+
* @internal - Exposed for testing. Use `decryptWithKey` instead.
|
|
36574
|
+
*/
|
|
36575
|
+
async function aes256Decrypt(parts, passphrase) {
|
|
36576
|
+
const salt = Buffer.from(parts.salt, "base64");
|
|
36577
|
+
const iv = Buffer.from(parts.iv, "base64");
|
|
36578
|
+
const ciphertext = Buffer.from(parts.ciphertext, "base64");
|
|
36579
|
+
const tag = Buffer.from(parts.tag, "base64");
|
|
36580
|
+
const key = await deriveScryptKey(passphrase, salt);
|
|
36581
|
+
const decipher = crypto$1.createDecipheriv(ALGO, key, iv);
|
|
36582
|
+
decipher.setAuthTag(tag);
|
|
36583
|
+
return Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString("utf8");
|
|
36584
|
+
}
|
|
36585
|
+
async function deriveScryptKey(passphrase, salt) {
|
|
36586
|
+
return new Promise((resolve$1, reject) => {
|
|
36587
|
+
crypto$1.scrypt(passphrase, salt, KEY_LEN, {
|
|
36588
|
+
N: SCRYPT_N,
|
|
36589
|
+
r: SCRYPT_R,
|
|
36590
|
+
p: SCRYPT_P
|
|
36591
|
+
}, (err, derivedKey) => {
|
|
36592
|
+
if (err) reject(err);
|
|
36593
|
+
else resolve$1(derivedKey);
|
|
36594
|
+
});
|
|
36595
|
+
});
|
|
36596
|
+
}
|
|
36597
|
+
/**
|
|
36598
|
+
* Decrypt a value encrypted with a symmetric key using libsodium.
|
|
36599
|
+
* @internal - Exposed to test backwards compatibility. Use `decryptWithKey` instead.
|
|
36557
36600
|
*
|
|
36558
36601
|
* @param encryptedValue - The base64-encoded encrypted value with nonce
|
|
36559
36602
|
* @param key - The decryption key
|
|
36560
36603
|
* @returns The decrypted string
|
|
36561
36604
|
*/
|
|
36562
|
-
async function
|
|
36605
|
+
async function libsodiumDecrypt(encryptedValue, key) {
|
|
36563
36606
|
const sodium = (await import("libsodium-wrappers")).default;
|
|
36564
36607
|
await sodium.ready;
|
|
36565
36608
|
const cryptoKey = sodium.crypto_generichash(sodium.crypto_secretbox_KEYBYTES, sodium.from_string(key));
|
|
@@ -36605,7 +36648,7 @@ async function deserialize(scope, value, options) {
|
|
|
36605
36648
|
if (value && typeof value === "object") {
|
|
36606
36649
|
if (value["@secret"]) {
|
|
36607
36650
|
if (!scope.password) throw new Error("Cannot deserialize secret without password, did you forget to set password when initializing your alchemy app?\nSee: https://alchemy.run/concepts/secret/#encryption-password");
|
|
36608
|
-
if (typeof value["@secret"] === "object") return new Secret(JSON.parse(await decryptWithKey(value["@secret"].data, scope.password)));
|
|
36651
|
+
if (typeof value["@secret"] === "object" && "data" in value["@secret"]) return new Secret(JSON.parse(await decryptWithKey(value["@secret"].data, scope.password)));
|
|
36609
36652
|
return new Secret(await decryptWithKey(value["@secret"], scope.password));
|
|
36610
36653
|
} else if ("@schema" in value) return value["@schema"];
|
|
36611
36654
|
else if ("@date" in value) return new Date(value["@date"]);
|
|
@@ -36780,7 +36823,7 @@ function envPaths(name$1, { suffix = "nodejs" } = {}) {
|
|
|
36780
36823
|
//#endregion
|
|
36781
36824
|
//#region package.json
|
|
36782
36825
|
var name = "alchemy";
|
|
36783
|
-
var version = "0.
|
|
36826
|
+
var version = "0.77.1";
|
|
36784
36827
|
var license = "Apache-2.0";
|
|
36785
36828
|
var author = "Sam Goodwin <sam@alchemy.run>";
|
|
36786
36829
|
var homepage = "https://alchemy.run";
|
|
@@ -36793,13 +36836,11 @@ var type = "module";
|
|
|
36793
36836
|
var module$1 = "./lib/index.js";
|
|
36794
36837
|
var bin = { "alchemy": "bin/alchemy.js" };
|
|
36795
36838
|
var scripts = {
|
|
36796
|
-
"build
|
|
36797
|
-
"dev
|
|
36798
|
-
"build:workers": "bun ./scripts/build-workers.ts",
|
|
36799
|
-
"build": "rm -rf ./*.tsbuildinfo && rm -rf ./lib && tsc -b && bun run build:cli && bun run build:workers",
|
|
36839
|
+
"build": "rm -rf ./*.tsbuildinfo && rm -rf ./lib && tsc -b && tsdown",
|
|
36840
|
+
"dev": "tsdown --watch",
|
|
36800
36841
|
"drizzle:generate": "bun run scripts/drizzle-generate.ts",
|
|
36801
36842
|
"postbuild": "cpx 'src/**/*/types.d.ts' lib && cpx 'src/**/*.txt' lib",
|
|
36802
|
-
"publish:npm": "cp ../README.md . && bun run build &&
|
|
36843
|
+
"publish:npm": "cp ../README.md . && bun run build && tsdown && bun publish && rm README.md"
|
|
36803
36844
|
};
|
|
36804
36845
|
var files = [
|
|
36805
36846
|
"bin",
|
|
@@ -36830,6 +36871,10 @@ var exports$1 = {
|
|
|
36830
36871
|
"bun": "./src/aws/index.ts",
|
|
36831
36872
|
"import": "./lib/aws/index.js"
|
|
36832
36873
|
},
|
|
36874
|
+
"./aws/ec2": {
|
|
36875
|
+
"bun": "./src/aws/ec2/index.ts",
|
|
36876
|
+
"import": "./lib/aws/ec2/index.js"
|
|
36877
|
+
},
|
|
36833
36878
|
"./aws/control": {
|
|
36834
36879
|
"bun": "./src/aws/control/index.ts",
|
|
36835
36880
|
"import": "./lib/aws/control/index.js"
|
|
@@ -36950,7 +36995,7 @@ var exports$1 = {
|
|
|
36950
36995
|
};
|
|
36951
36996
|
var dependencies = {
|
|
36952
36997
|
"@aws-sdk/credential-providers": "^3.0.0",
|
|
36953
|
-
"@cloudflare/unenv-preset": "
|
|
36998
|
+
"@cloudflare/unenv-preset": "2.7.7",
|
|
36954
36999
|
"@cloudflare/workers-types": "catalog:",
|
|
36955
37000
|
"@iarna/toml": "^2.2.5",
|
|
36956
37001
|
"@octokit/rest": "^21.1.1",
|
|
@@ -36974,7 +37019,7 @@ var dependencies = {
|
|
|
36974
37019
|
"picocolors": "^1.1.1",
|
|
36975
37020
|
"proper-lockfile": "^4.1.2",
|
|
36976
37021
|
"signal-exit": "^4.1.0",
|
|
36977
|
-
"unenv": "2.0.0-rc.
|
|
37022
|
+
"unenv": "2.0.0-rc.21",
|
|
36978
37023
|
"ws": "^8.18.3",
|
|
36979
37024
|
"yaml": "^2.0.0"
|
|
36980
37025
|
};
|
|
@@ -36989,7 +37034,7 @@ var peerDependencies = {
|
|
|
36989
37034
|
"@aws-sdk/client-sqs": "^3.0.0",
|
|
36990
37035
|
"@aws-sdk/client-ssm": "^3.0.0",
|
|
36991
37036
|
"@aws-sdk/client-sts": "^3.0.0",
|
|
36992
|
-
"@cloudflare/vite-plugin": "
|
|
37037
|
+
"@cloudflare/vite-plugin": "catalog:",
|
|
36993
37038
|
"@libsql/client": "^0.15.12",
|
|
36994
37039
|
"@opennextjs/cloudflare": "^1.6.5",
|
|
36995
37040
|
"astro": "^5.13.2",
|
|
@@ -37339,11 +37384,13 @@ async function fetchNoResponse(url$2, options = {}) {
|
|
|
37339
37384
|
port: parsedUrl.port || (isHttps ? 443 : 80),
|
|
37340
37385
|
path: parsedUrl.pathname + parsedUrl.search,
|
|
37341
37386
|
method: options.method || "GET",
|
|
37342
|
-
headers
|
|
37387
|
+
headers,
|
|
37388
|
+
signal: AbortSignal.timeout(options?.timeout ?? 3e3)
|
|
37343
37389
|
};
|
|
37344
37390
|
await new Promise((resolve$1, reject) => {
|
|
37345
37391
|
const req = client.request(requestOptions);
|
|
37346
37392
|
req.on("error", (error$84) => {
|
|
37393
|
+
if (error$84.name === "AbortError" && !SUPPRESS_TELEMETRY_ERRORS) logger.warn("Telemetry request timed out");
|
|
37347
37394
|
reject(error$84);
|
|
37348
37395
|
});
|
|
37349
37396
|
if (body) req.write(body);
|
|
@@ -37875,6 +37922,30 @@ var Scope = class Scope {
|
|
|
37875
37922
|
this.onCleanup(result.stop);
|
|
37876
37923
|
return result.extracted;
|
|
37877
37924
|
}
|
|
37925
|
+
async exec(id, command) {
|
|
37926
|
+
const logFilePath = path$1.join(this.dotAlchemy, "logs", `${id}.log`);
|
|
37927
|
+
const [cmd, ...args] = command.split(/\s+/);
|
|
37928
|
+
const child = spawn(cmd, args, { stdio: "pipe" });
|
|
37929
|
+
await once(child, "spawn");
|
|
37930
|
+
await fs$1.mkdir(path$1.dirname(logFilePath), { recursive: true });
|
|
37931
|
+
const logFile = await fs$1.open(logFilePath, "w");
|
|
37932
|
+
let stdout$1 = "";
|
|
37933
|
+
let stderr = "";
|
|
37934
|
+
child.stdout.on("data", (chunk) => {
|
|
37935
|
+
stdout$1 += chunk.toString();
|
|
37936
|
+
logFile.write(chunk);
|
|
37937
|
+
});
|
|
37938
|
+
child.stderr.on("data", (chunk) => {
|
|
37939
|
+
stderr += chunk.toString();
|
|
37940
|
+
logFile.write(chunk);
|
|
37941
|
+
});
|
|
37942
|
+
const [exitCode] = await once(child, "exit");
|
|
37943
|
+
return {
|
|
37944
|
+
exitCode,
|
|
37945
|
+
stdout: stdout$1,
|
|
37946
|
+
stderr
|
|
37947
|
+
};
|
|
37948
|
+
}
|
|
37878
37949
|
/**
|
|
37879
37950
|
* @internal
|
|
37880
37951
|
*/
|
|
@@ -55372,7 +55443,16 @@ async function execAlchemy(main, { cwd: cwd$1 = process.cwd(), quiet, force: for
|
|
|
55372
55443
|
execArgs$1.push("--watch");
|
|
55373
55444
|
args.push("--watch");
|
|
55374
55445
|
}
|
|
55375
|
-
if (envFile
|
|
55446
|
+
if (envFile) {
|
|
55447
|
+
if (!await exists(envFile)) {
|
|
55448
|
+
M.error(pc.red(`Environment file ${envFile} does not exist.`));
|
|
55449
|
+
throw new ExitSignal(1);
|
|
55450
|
+
}
|
|
55451
|
+
execArgs$1.push(`--env-file ${envFile}`);
|
|
55452
|
+
} else {
|
|
55453
|
+
const envFile$1 = resolve(cwd$1, ".env");
|
|
55454
|
+
if (await exists(envFile$1)) execArgs$1.push(`--env-file ${envFile$1}`);
|
|
55455
|
+
}
|
|
55376
55456
|
if (dev$1) args.push("--dev");
|
|
55377
55457
|
if (inspect$1) execArgs$1.push("--inspect");
|
|
55378
55458
|
if (inspectWait) execArgs$1.push("--inspect-wait");
|
|
@@ -140,8 +140,17 @@ export async function execAlchemy(
|
|
|
140
140
|
execArgs.push("--watch");
|
|
141
141
|
args.push("--watch");
|
|
142
142
|
}
|
|
143
|
-
if (envFile
|
|
143
|
+
if (envFile) {
|
|
144
|
+
if (!(await exists(envFile))) {
|
|
145
|
+
log.error(pc.red(`Environment file ${envFile} does not exist.`));
|
|
146
|
+
throw new ExitSignal(1);
|
|
147
|
+
}
|
|
144
148
|
execArgs.push(`--env-file ${envFile}`);
|
|
149
|
+
} else {
|
|
150
|
+
const envFile = resolve(cwd, ".env");
|
|
151
|
+
if (await exists(envFile)) {
|
|
152
|
+
execArgs.push(`--env-file ${envFile}`);
|
|
153
|
+
}
|
|
145
154
|
}
|
|
146
155
|
if (dev) args.push("--dev");
|
|
147
156
|
if (inspect) execArgs.push("--inspect");
|
package/lib/aws/ec2/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./nat-gateway.ts";
|
|
|
4
4
|
export * from "./route-table-association.ts";
|
|
5
5
|
export * from "./route-table.ts";
|
|
6
6
|
export * from "./route.ts";
|
|
7
|
+
export * from "./security-group-rule.ts";
|
|
7
8
|
export * from "./security-group.ts";
|
|
8
9
|
export * from "./subnet.ts";
|
|
9
10
|
export * from "./vpc.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
package/lib/aws/ec2/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./nat-gateway.js";
|
|
|
4
4
|
export * from "./route-table-association.js";
|
|
5
5
|
export * from "./route-table.js";
|
|
6
6
|
export * from "./route.js";
|
|
7
|
+
export * from "./security-group-rule.js";
|
|
7
8
|
export * from "./security-group.js";
|
|
8
9
|
export * from "./subnet.js";
|
|
9
10
|
export * from "./vpc.js";
|
package/lib/aws/ec2/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/aws/ec2/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
package/lib/aws/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./account-id.ts";
|
|
|
2
2
|
export * from "./bucket.ts";
|
|
3
3
|
export * from "./client-props.ts";
|
|
4
4
|
export * from "./credentials.ts";
|
|
5
|
+
export * from "./ec2/index.ts";
|
|
5
6
|
export * from "./function.ts";
|
|
6
7
|
export * from "./policy-attachment.ts";
|
|
7
8
|
export * from "./policy.ts";
|
|
@@ -11,11 +12,4 @@ export * from "./s3-state-store.ts";
|
|
|
11
12
|
export * from "./ses.ts";
|
|
12
13
|
export * from "./ssm-parameter.ts";
|
|
13
14
|
export * from "./table.ts";
|
|
14
|
-
export * from "./ec2/internet-gateway.ts";
|
|
15
|
-
export * from "./ec2/nat-gateway.ts";
|
|
16
|
-
export * from "./ec2/route-table.ts";
|
|
17
|
-
export * from "./ec2/route.ts";
|
|
18
|
-
export * from "./ec2/security-group.ts";
|
|
19
|
-
export * from "./ec2/subnet.ts";
|
|
20
|
-
export * from "./ec2/vpc.ts";
|
|
21
15
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/aws/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
package/lib/aws/index.js
CHANGED
|
@@ -2,6 +2,7 @@ export * from "./account-id.js";
|
|
|
2
2
|
export * from "./bucket.js";
|
|
3
3
|
export * from "./client-props.js";
|
|
4
4
|
export * from "./credentials.js";
|
|
5
|
+
export * from "./ec2/index.js";
|
|
5
6
|
export * from "./function.js";
|
|
6
7
|
export * from "./policy-attachment.js";
|
|
7
8
|
export * from "./policy.js";
|
|
@@ -11,12 +12,4 @@ export * from "./s3-state-store.js";
|
|
|
11
12
|
export * from "./ses.js";
|
|
12
13
|
export * from "./ssm-parameter.js";
|
|
13
14
|
export * from "./table.js";
|
|
14
|
-
// EC2 Resources
|
|
15
|
-
export * from "./ec2/internet-gateway.js";
|
|
16
|
-
export * from "./ec2/nat-gateway.js";
|
|
17
|
-
export * from "./ec2/route-table.js";
|
|
18
|
-
export * from "./ec2/route.js";
|
|
19
|
-
export * from "./ec2/security-group.js";
|
|
20
|
-
export * from "./ec2/subnet.js";
|
|
21
|
-
export * from "./ec2/vpc.js";
|
|
22
15
|
//# sourceMappingURL=index.js.map
|
package/lib/aws/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Context } from "../context";
|
|
2
|
+
import { CloudflareApi, type CloudflareApiOptions } from "./api";
|
|
3
|
+
import { type R2BucketJurisdiction } from "./bucket";
|
|
4
|
+
import type { Zone } from "./zone";
|
|
5
|
+
export interface R2BucketCustomDomainProps extends CloudflareApiOptions, R2BucketCustomDomainOptions {
|
|
6
|
+
/**
|
|
7
|
+
* The bucket to attach the domain to.
|
|
8
|
+
*/
|
|
9
|
+
bucketName: string;
|
|
10
|
+
/**
|
|
11
|
+
* The jurisdiction of the bucket.
|
|
12
|
+
* @default "default"
|
|
13
|
+
*/
|
|
14
|
+
jurisdiction?: R2BucketJurisdiction;
|
|
15
|
+
/**
|
|
16
|
+
* Development mode properties
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
dev?: {
|
|
20
|
+
remote?: boolean;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface R2BucketCustomDomainOptions {
|
|
24
|
+
/**
|
|
25
|
+
* The domain name to attach to the bucket.
|
|
26
|
+
*/
|
|
27
|
+
domain: string;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the domain is enabled.
|
|
30
|
+
* @default true
|
|
31
|
+
*/
|
|
32
|
+
enabled?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The zone to attach the domain to.
|
|
35
|
+
*/
|
|
36
|
+
zone?: string | Zone;
|
|
37
|
+
/**
|
|
38
|
+
* An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format.
|
|
39
|
+
*/
|
|
40
|
+
ciphers?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* The minimum TLS version to support.
|
|
43
|
+
*/
|
|
44
|
+
minTLS?: "1.0" | "1.1" | "1.2" | "1.3" | (string & {});
|
|
45
|
+
/**
|
|
46
|
+
* Whether to adopt an existing custom domain binding during creation.
|
|
47
|
+
* If false and the domain already exists, creation will fail.
|
|
48
|
+
* This only applies during the create phase.
|
|
49
|
+
* @default false
|
|
50
|
+
*/
|
|
51
|
+
adopt?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to delete the custom domain binding during deletion.
|
|
54
|
+
* If false, the custom domain binding will remain but the resource will be removed from state
|
|
55
|
+
* @default true
|
|
56
|
+
*/
|
|
57
|
+
delete?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export type R2BucketCustomDomain = {
|
|
60
|
+
/**
|
|
61
|
+
* The domain name.
|
|
62
|
+
*/
|
|
63
|
+
domain: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the domain is enabled.
|
|
66
|
+
*/
|
|
67
|
+
enabled: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* The zone ID.
|
|
70
|
+
*/
|
|
71
|
+
zoneId: string;
|
|
72
|
+
/**
|
|
73
|
+
* The ciphers to support.
|
|
74
|
+
*/
|
|
75
|
+
ciphers?: string[];
|
|
76
|
+
/**
|
|
77
|
+
* The minimum TLS version to support.
|
|
78
|
+
*/
|
|
79
|
+
minTLS?: "1.0" | "1.1" | "1.2" | "1.3" | (string & {});
|
|
80
|
+
};
|
|
81
|
+
export declare const R2BucketCustomDomain: (((this: any, id: string, props?: {}) => never) & (new (_: never) => never)) | ((this: Context<R2BucketCustomDomain>, _id: string, props: R2BucketCustomDomainProps) => Promise<R2BucketCustomDomain>);
|
|
82
|
+
export declare function deleteBucketCustomDomain(api: CloudflareApi, bucket: string, domain: string, jurisdiction: R2BucketJurisdiction | undefined): Promise<unknown>;
|
|
83
|
+
export declare function getBucketCustomDomain(api: CloudflareApi, bucket: string, domain: string, jurisdiction: R2BucketJurisdiction | undefined): Promise<void | (R2BucketCustomDomain & {
|
|
84
|
+
zoneName?: string;
|
|
85
|
+
status: {
|
|
86
|
+
ownership: "pending" | "active" | "deactivated" | "blocked" | "error" | "unknown";
|
|
87
|
+
ssl: "initializing" | "pending" | "active" | "deactivated" | "error" | "unknown";
|
|
88
|
+
};
|
|
89
|
+
})>;
|
|
90
|
+
//# sourceMappingURL=bucket-custom-domain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-custom-domain.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket-custom-domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EACL,aAAa,EAEb,KAAK,oBAAoB,EAC1B,MAAM,OAAO,CAAC;AAGf,OAAO,EAAoB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,WAAW,yBACf,SAAQ,oBAAoB,EAC1B,2BAA2B;IAC7B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC;;;OAGG;IACH,GAAG,CAAC,EAAE;QACJ,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,yFAGvB,OAAO,CAAC,oBAAoB,CAAC,OAC9B,MAAM,SACJ,yBAAyB,KAC/B,OAAO,CAAC,oBAAoB,CAAC,CA+EjC,CAAC;AAkCF,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,SAAS,oBAa/C;AAED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,oBAAoB,GAAG,SAAS;eAI/B,MAAM;YACT;QACN,SAAS,EACL,SAAS,GACT,QAAQ,GACR,aAAa,GACb,SAAS,GACT,OAAO,GACP,SAAS,CAAC;QACd,GAAG,EACC,cAAc,GACd,SAAS,GACT,QAAQ,GACR,aAAa,GACb,OAAO,GACP,SAAS,CAAC;KACf;IAeN"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Resource } from "../resource";
|
|
2
|
+
import { diff } from "../util/diff";
|
|
3
|
+
import { CloudflareApi, createCloudflareApi, } from "./api";
|
|
4
|
+
import { CloudflareApiError } from "./api-error";
|
|
5
|
+
import { extractCloudflareResult } from "./api-response";
|
|
6
|
+
import { withJurisdiction } from "./bucket";
|
|
7
|
+
import { inferZoneIdFromPattern } from "./route";
|
|
8
|
+
export const R2BucketCustomDomain = Resource("cloudflare::R2BucketCustomDomain", async function (_id, props) {
|
|
9
|
+
if (this.scope.local && !props.dev?.remote && this.phase !== "delete") {
|
|
10
|
+
return {
|
|
11
|
+
domain: props.domain,
|
|
12
|
+
enabled: props.enabled ?? false,
|
|
13
|
+
zoneId: typeof props.zone === "string"
|
|
14
|
+
? props.zone
|
|
15
|
+
: (props.zone?.id ?? "noop-zone"),
|
|
16
|
+
ciphers: props.ciphers,
|
|
17
|
+
minTLS: props.minTLS,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
const adopt = props.adopt ?? this.scope.adopt;
|
|
21
|
+
const api = await createCloudflareApi(props);
|
|
22
|
+
const payload = {
|
|
23
|
+
domain: props.domain,
|
|
24
|
+
enabled: props.enabled ?? true,
|
|
25
|
+
zoneId: typeof props.zone === "string"
|
|
26
|
+
? props.zone
|
|
27
|
+
: (props.zone?.id ??
|
|
28
|
+
(await inferZoneIdFromPattern(api, props.domain))),
|
|
29
|
+
ciphers: props.ciphers,
|
|
30
|
+
minTLS: props.minTLS,
|
|
31
|
+
};
|
|
32
|
+
switch (this.phase) {
|
|
33
|
+
case "create": {
|
|
34
|
+
await createBucketCustomDomain(api, props.bucketName, props.jurisdiction, payload).catch(async (error) => {
|
|
35
|
+
if (error instanceof CloudflareApiError &&
|
|
36
|
+
error.status === 409 &&
|
|
37
|
+
adopt) {
|
|
38
|
+
return await updateBucketCustomDomain(api, props.bucketName, props.jurisdiction, payload);
|
|
39
|
+
}
|
|
40
|
+
throw error;
|
|
41
|
+
});
|
|
42
|
+
return payload;
|
|
43
|
+
}
|
|
44
|
+
case "update": {
|
|
45
|
+
if (diff(this.output, payload).some((property) => property === "domain" || property === "zoneId")) {
|
|
46
|
+
return this.replace();
|
|
47
|
+
}
|
|
48
|
+
await updateBucketCustomDomain(api, props.bucketName, props.jurisdiction, payload);
|
|
49
|
+
return payload;
|
|
50
|
+
}
|
|
51
|
+
case "delete": {
|
|
52
|
+
if (props.delete !== false) {
|
|
53
|
+
await deleteBucketCustomDomain(api, props.bucketName, props.domain, props.jurisdiction);
|
|
54
|
+
}
|
|
55
|
+
return this.destroy();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
async function createBucketCustomDomain(api, bucket, jurisdiction, payload) {
|
|
60
|
+
return await extractCloudflareResult(`create custom domain for bucket "${bucket}"`, api.post(`/accounts/${api.accountId}/r2/buckets/${bucket}/domains/custom`, payload, { headers: withJurisdiction({ jurisdiction }) }));
|
|
61
|
+
}
|
|
62
|
+
async function updateBucketCustomDomain(api, bucket, jurisdiction, payload) {
|
|
63
|
+
return await extractCloudflareResult(`update custom domain for bucket "${bucket}"`, api.put(`/accounts/${api.accountId}/r2/buckets/${bucket}/domains/custom/${encodeURIComponent(payload.domain)}`, payload, { headers: withJurisdiction({ jurisdiction }) }));
|
|
64
|
+
}
|
|
65
|
+
export async function deleteBucketCustomDomain(api, bucket, domain, jurisdiction) {
|
|
66
|
+
return await extractCloudflareResult(`delete custom domain for bucket "${bucket}"`, api.delete(`/accounts/${api.accountId}/r2/buckets/${bucket}/domains/custom/${encodeURIComponent(domain)}`, { headers: withJurisdiction({ jurisdiction }) })).catch((error) => {
|
|
67
|
+
if (!(error instanceof CloudflareApiError && error.status === 404)) {
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
export async function getBucketCustomDomain(api, bucket, domain, jurisdiction) {
|
|
73
|
+
return await extractCloudflareResult(`get custom domain for bucket "${bucket}"`, api.get(`/accounts/${api.accountId}/r2/buckets/${bucket}/domains/custom/${encodeURIComponent(domain)}`, {
|
|
74
|
+
headers: withJurisdiction({ jurisdiction }),
|
|
75
|
+
})).catch((error) => {
|
|
76
|
+
if (!(error instanceof CloudflareApiError && error.status === 404)) {
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=bucket-custom-domain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bucket-custom-domain.js","sourceRoot":"","sources":["../../src/cloudflare/bucket-custom-domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { R2PutOptions } from "@cloudflare/workers-types/experimental/index.ts";
|
|
2
2
|
import type { Context } from "../context.ts";
|
|
3
3
|
import { type CloudflareApi, type CloudflareApiOptions } from "./api.ts";
|
|
4
|
+
import { type R2BucketCustomDomainOptions } from "./bucket-custom-domain.ts";
|
|
4
5
|
export type R2BucketJurisdiction = "default" | "eu" | "fedramp";
|
|
5
6
|
/**
|
|
6
7
|
* Properties for creating or updating an R2 Bucket
|
|
@@ -32,8 +33,18 @@ export interface BucketProps extends CloudflareApiOptions {
|
|
|
32
33
|
/**
|
|
33
34
|
* Whether to allow public access through the r2.dev subdomain
|
|
34
35
|
* Only for development purposes - use custom domains for production
|
|
36
|
+
* @deprecated Use `devDomain` instead
|
|
35
37
|
*/
|
|
36
38
|
allowPublicAccess?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Whether to allow public access through the r2.dev subdomain
|
|
41
|
+
* Only for development purposes - use custom domains for production
|
|
42
|
+
*/
|
|
43
|
+
devDomain?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The custom domain(s) to attach to the bucket.
|
|
46
|
+
*/
|
|
47
|
+
domains?: string | R2BucketCustomDomainOptions | string[] | R2BucketCustomDomainOptions[];
|
|
37
48
|
/**
|
|
38
49
|
* Whether to delete the bucket.
|
|
39
50
|
* If set to false, the bucket will remain but the resource will be removed from state
|
|
@@ -254,7 +265,7 @@ export type R2Bucket = _R2Bucket & {
|
|
|
254
265
|
/**
|
|
255
266
|
* Output returned after R2 Bucket creation/update
|
|
256
267
|
*/
|
|
257
|
-
type _R2Bucket = Omit<BucketProps, "delete" | "dev"> & {
|
|
268
|
+
type _R2Bucket = Omit<BucketProps, "delete" | "dev" | "domains" | "devDomain"> & {
|
|
258
269
|
/**
|
|
259
270
|
* Resource type identifier
|
|
260
271
|
*/
|
|
@@ -273,8 +284,17 @@ type _R2Bucket = Omit<BucketProps, "delete" | "dev"> & {
|
|
|
273
284
|
creationDate: Date;
|
|
274
285
|
/**
|
|
275
286
|
* The `r2.dev` subdomain for the bucket, if `allowPublicAccess` is true
|
|
287
|
+
* @deprecated Use `devDomain` instead
|
|
276
288
|
*/
|
|
277
|
-
domain
|
|
289
|
+
domain?: string;
|
|
290
|
+
/**
|
|
291
|
+
* The `r2.dev` subdomain for the bucket, if `devDomain` is true
|
|
292
|
+
*/
|
|
293
|
+
devDomain: string | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* The custom domains for the bucket, if applicable
|
|
296
|
+
*/
|
|
297
|
+
domains: string[] | undefined;
|
|
278
298
|
/**
|
|
279
299
|
* Development mode properties
|
|
280
300
|
* @internal
|
|
@@ -425,12 +445,16 @@ export declare function putBucketLifecycleRules(api: CloudflareApi, bucketName:
|
|
|
425
445
|
/**
|
|
426
446
|
* Get lifecycle rules for a bucket
|
|
427
447
|
*/
|
|
428
|
-
export declare function getBucketLifecycleRules(api: CloudflareApi, bucketName: string, props
|
|
448
|
+
export declare function getBucketLifecycleRules(api: CloudflareApi, bucketName: string, props: {
|
|
449
|
+
jurisdiction?: string;
|
|
450
|
+
}): Promise<R2BucketLifecycleRule[]>;
|
|
429
451
|
export declare function putBucketLockRules(api: CloudflareApi, bucketName: string, props: BucketProps): Promise<void>;
|
|
430
452
|
/**
|
|
431
453
|
* Get lock rules for a bucket
|
|
432
454
|
*/
|
|
433
|
-
export declare function getBucketLockRules(api: CloudflareApi, bucketName: string, props
|
|
455
|
+
export declare function getBucketLockRules(api: CloudflareApi, bucketName: string, props: {
|
|
456
|
+
jurisdiction?: R2BucketJurisdiction;
|
|
457
|
+
}): Promise<R2BucketLockRule[]>;
|
|
434
458
|
export declare function headObject(api: CloudflareApi, { bucketName, key }: {
|
|
435
459
|
bucketName: string;
|
|
436
460
|
key: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAGpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/cloudflare/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAGpF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,2BAA2B,CAAC;AAInC,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,oBAAoB;IACvD;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAE/C;;;OAGG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EACJ,MAAM,GACN,2BAA2B,GAC3B,MAAM,EAAE,GACR,2BAA2B,EAAE,CAAC;IAElC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAEpC;;OAEG;IACH,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,GAAG,CAAC,EAAE;QACJ;;;WAGG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QAEjB;;;WAGG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,UAAU,qBAAqB;IAC7B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,+BAA+B,CAAC,EAAE;QAChC;;WAEG;QACH,SAAS,EAAE;YACT;;;;eAIG;YACH,MAAM,EAAE,MAAM,CAAC;YAEf;;eAEG;YACH,IAAI,EAAE,KAAK,CAAC;SACb,CAAC;KACH,CAAC;IAEF;;OAEG;IACH,uBAAuB,CAAC,EAAE;QACxB;;WAEG;QACH,SAAS,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,KAAK,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KAC7E,CAAC;IAEF;;OAEG;IACH,uBAAuB,CAAC,EAAE;QACxB;;WAEG;QACH,SAAS,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,KAAK,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAE5E;;WAEG;QACH,YAAY,EAAE,kBAAkB,CAAC;KAClC,EAAE,CAAC;CACL;AAED,UAAU,gBAAgB;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,SAAS,EACL;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC9B;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC;IAE3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACxB;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,EAAE;QACP;;WAEG;QACH,OAAO,EAAE,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;QAExD;;WAEG;QACH,OAAO,EAAE,MAAM,EAAE,CAAC;QAElB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG;IAC/C,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IACpC,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,EAAE,CAAC;CACnD,GAAG,CACA;IACE,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,SAAS,EAAE,KAAK,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CACJ,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG;IACjC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAClD,GAAG,CACD,GAAG,EAAE,MAAM,EACX,KAAK,EACD,cAAc,GACd,WAAW,GACX,eAAe,GACf,MAAM,GACN,IAAI,GACJ,IAAI,EACR,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,GAC3C,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CACnD,CAAC;AAEF;;GAEG;AACH,KAAK,SAAS,GAAG,IAAI,CACnB,WAAW,EACX,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAC3C,GAAG;IACF;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,IAAI,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,GAAG,EAAE;QACH;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;QAEX;;WAEG;QACH,MAAM,EAAE,OAAO,CAAC;QAEhB;;;;WAIG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,EAAE,EAAE,MAAM,CAAC;QACX;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,CAAC;AAEF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,QAAQ,CAE5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,MAAM,EACV,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC,QAAQ,CAAC,CAuInB;AAkBD,QAAA,MAAM,SAAS,yFAGL,OAAO,CAAC,SAAS,CAAC,MACpB,MAAM,UACH,WAAW,KACjB,OAAO,CAAC,SAAS,CAAC,CAoLtB,CAAC;AAEF;;;GAGG;AACH,UAAU,cAAc;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,UAAU,GAAG,kBAAkB,CAAC;IAC/C,YAAY,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACnC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC,cAAc,CAAC,CAOzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC,cAAc,CAAC,CAezB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,iBAenB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,MAAM,+BAsBtB;AAsCD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,OAAO,CAAC,SAAS,CAAC,CAiEpB;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,aAAa,EAClB,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB;UA4Ba,MAAM;mBAAiB,MAAM;KAQjD;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,iBAwBnB;AAED,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,iBAwBnB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAiBlC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,WAAW,iBAsBnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE;IAAE,YAAY,CAAC,EAAE,oBAAoB,CAAA;CAAE,GAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAiB7B;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAqBlC;AAMD,wBAAsB,SAAS,CAC7B,GAAG,EAAE,aAAa,EAClB,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,qBAiBzD;AAED,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,WAAW,GACX,eAAe,GACf,UAAU,GACV,MAAM,GACN,MAAM,GACN,IAAI,CAAC;AA4CT,wBAAsB,SAAS,CAC7B,GAAG,EAAE,aAAa,EAClB,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;CAC9C,GACA,OAAO,CAAC,QAAQ,CAAC,CAsBnB;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,qBAazD;AAED,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM;;;;GAcnB;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,MAAM,iBAMnB"}
|