@cloudflare/vite-plugin 1.25.5 → 1.26.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/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/utils.ts","../src/workers-configs.ts","../src/plugin-config.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;ACgDK,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/utils.ts","../src/workers-configs.ts","../src/plugin-config.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;ACgDK,KDOO,OCPP,CAAA,CAAA,CAAA,GDOoB,OCPpB,CDO4B,CCP5B,EAAA,SAA8B,CAAA;;;;AAA9B,KAjBO,YAAA,GAAe,IAiBtB,CAjB2B,eAiBG,EAAU,MAjBU,mBAiBV,CAA0B;KAAlE,8BAAA,UAAwC;KAExC,mBAAA,GACF,oCACA;KAEE,iCAAA,SACE;AC/BP,KDiCK,8BAAA,GACJ,8BClCuB,CAAA,aAAA,CAAA,CAAA,MAAA,CAAA;AAA8B;AAE5B;AAI0B;AAS1C,cDwBG,0BCtBJ,EAAA;EAGJ;AAEyB;AAMU;EAQnC,SAAA,cAAA,EAAsB;IAChB,SAAA,KAAA,EAAA;MAAR,SAAA,eAAA,EAAA,eAAA;MAES,SAAA,QAAA,EAAA,2DAAA;IACG,CAAA;IAED,SAAA,MAAA,EAAA;MACa,SAAA,eAAA,EAAA,QAAA;MAEX,SAAA,QAAA,EAAA,oDAAA;IAAR,CAAA;IAAO,SAAA,MAAA,EAAA;MAEE,SAAa,eAAA,EAAA,cAAA;MACV,SAAA,QAAA,EAAA,yDAAA;IACJ,CAAA;EAGA,CAAA;EALsB;;AAQtC;;EACe,SAAA,WAAA,EAAA,SAAA,CAAA,UAAA,EAAA,OAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA;CACA;;;AF1BH,KE/BA,YAAA,GF+BqB,OAAR,GAAA;;;UE7Bf,gBAAA;EDKE,eAAY,CAAA,EAAA;IAAQ,IAAA,CAAA,EAAA,MAAA;IAAuB,iBAAA,CAAA,EAAA,MAAA,EAAA;EAA5B,CAAA;;AAezB,UChBQ,iBAAA,SAA0B,gBDkBS,CAAA;EAExC,UAAA,CAAA,EAAA,MAAA;EAIA,MAAA,CAAA,ECtBK,sBDsBL,CAAA,IAAiC,CAAA;AACD;AAQrC,UC5BU,yBAAA,SAAkC,gBD4DlC,CAAA;;;UCxDA,2BAAA,SAAoC;EAflC,UAAA,CAAA,EAAA,MAAY;EAEd,MAAA,EAeD,sBAfiB,CAAA,KAAA,CAAA;AAAA;AAI0B,KAc/C,qBAAA,GACF,yBAVyC,GAWzC,2BAXyD;AAAA,UAalD,YAAA,CATA;EAKL;EAIK,iCAIS,CAAA,EAAA,OAAA;EAGd;EAKA,eAAA,CAAA,EARc,qBAQQ;;KALtB,yBAAA,GAA4B,IAM9B,CALF,wBAKE,EAAA,cAAA,GAAA,MAAA,CAAA;KADE,sBAGO,CAAA,uBAAA,OAAA,CAAA,GAFT,OAES,CAFD,YAEC,CAAA,GAAA,CAAA,CAAA,GAAA,IAAA,EAAA,cAAA,SAAA,IAAA,GAAA,CAAA,MAAA,EACG,YADH,CAAA,GAAA,CACG,MAAA,EAED,YAFC,EAED;EACa,iBAAA,EAAA,yBAAA;AAEX,CAAA,CAAR,EAAA,GAAA,OAAA,CAAQ,YAAR,CAAA,GAAA,IAAA,CAAA;AAAO,UAEE,YAAA,SAAqB,iBAFvB,CAAA;EAEE,gBAAa,CAAA,EACV,qBADU,EAAA;EACV,YAAA,CAAA,EACJ,YADI;EACJ,aAAA,CAAA,EAAA,MAAA,GAAA,KAAA;EAGA,cAAA,CAAA,EAAA,OAAA;EALsB,YAAA,CAAA,EAKtB,YALsB;;AAQrB,UAAA,wBAAA,SAAiC,YAAR,CAAA;EACnB,YAAA,EAAR,OAAQ,CAAA,YAAA,CAAA,cAAA,CAAA,CAAA;EAAR,IAAA,EACR,OADQ,CACA,YADA,CAAA,MAAA,CAAA,CAAA;EACA,kBAAA,EACM,OADN,CACc,YADd,CAAA,oBAAA,CAAA,CAAA;;;;;AF1Bf;;;;ACxBA;;AAAuD,iBEevC,UAAA,CFfuC,YAAA,CAAA,EEed,YFfc,CAAA,EEeM,IAAA,CAAK,MFfX,EAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import module$1, { builtinModules, createRequire } from "node:module";
|
|
2
2
|
import assert from "node:assert";
|
|
3
|
-
import { randomUUID } from "node:crypto";
|
|
4
3
|
import { CoreHeaders, Log, LogLevel, Miniflare, Request as Request$1, Response as Response$1, coupleWebSocket, getDefaultDevRegistryPath, getNodeCompat, getWorkerRegistry, kUnsafeEphemeralUniqueKey } from "miniflare";
|
|
5
4
|
import * as wrangler from "wrangler";
|
|
6
5
|
import * as nodePath from "node:path";
|
|
@@ -9,6 +8,7 @@ import * as util$1 from "node:util";
|
|
|
9
8
|
import { format, inspect } from "node:util";
|
|
10
9
|
import * as vite from "vite";
|
|
11
10
|
import { version } from "vite";
|
|
11
|
+
import { randomUUID } from "node:crypto";
|
|
12
12
|
import * as fs$1 from "node:fs";
|
|
13
13
|
import fs, { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
|
|
14
14
|
import os from "node:os";
|
|
@@ -1557,8 +1557,16 @@ async function sendResponse(res, response) {
|
|
|
1557
1557
|
}
|
|
1558
1558
|
|
|
1559
1559
|
//#endregion
|
|
1560
|
-
//#region src/
|
|
1560
|
+
//#region src/constants.ts
|
|
1561
1561
|
var import_gte = /* @__PURE__ */ __toESM$1(require_gte(), 1);
|
|
1562
|
+
const ROUTER_WORKER_NAME = "__router-worker__";
|
|
1563
|
+
const ASSET_WORKER_NAME = "__asset-worker__";
|
|
1564
|
+
const VITE_PROXY_WORKER_NAME = "__vite_proxy_worker__";
|
|
1565
|
+
const PROXY_SHARED_SECRET = randomUUID();
|
|
1566
|
+
const kRequestType = Symbol("kRequestType");
|
|
1567
|
+
|
|
1568
|
+
//#endregion
|
|
1569
|
+
//#region src/utils.ts
|
|
1562
1570
|
const debuglog = util$1.debuglog("@cloudflare:vite-plugin");
|
|
1563
1571
|
/**
|
|
1564
1572
|
* Creates an internal plugin to be used inside the main `vite-plugin-cloudflare` plugin.
|
|
@@ -1584,13 +1592,13 @@ function cleanUrl(url) {
|
|
|
1584
1592
|
function withTrailingSlash(path$1) {
|
|
1585
1593
|
return path$1.endsWith("/") ? path$1 : `${path$1}/`;
|
|
1586
1594
|
}
|
|
1587
|
-
function createRequestHandler(
|
|
1595
|
+
function createRequestHandler(handler) {
|
|
1588
1596
|
return async (req, res, next) => {
|
|
1589
1597
|
let request$1;
|
|
1590
1598
|
try {
|
|
1591
1599
|
if (req.originalUrl) req.url = req.originalUrl;
|
|
1592
1600
|
request$1 = createRequest(req, res);
|
|
1593
|
-
let response = await handler(toMiniflareRequest(
|
|
1601
|
+
let response = await handler(toMiniflareRequest(request$1), req);
|
|
1594
1602
|
if (req.httpVersionMajor === 2) {
|
|
1595
1603
|
response = new Response$1(response.body, response);
|
|
1596
1604
|
response.headers.delete("transfer-encoding");
|
|
@@ -1605,11 +1613,11 @@ function createRequestHandler(ctx, handler) {
|
|
|
1605
1613
|
function satisfiesViteVersion(minVersion$2) {
|
|
1606
1614
|
return (0, import_gte.default)(version, minVersion$2);
|
|
1607
1615
|
}
|
|
1608
|
-
function toMiniflareRequest(
|
|
1616
|
+
function toMiniflareRequest(request$1) {
|
|
1609
1617
|
const host = request$1.headers.get("Host");
|
|
1610
1618
|
const xForwardedHost = request$1.headers.get("X-Forwarded-Host");
|
|
1611
1619
|
if (host && !xForwardedHost) request$1.headers.set("X-Forwarded-Host", host);
|
|
1612
|
-
request$1.headers.set(CoreHeaders.PROXY_SHARED_SECRET,
|
|
1620
|
+
request$1.headers.set(CoreHeaders.PROXY_SHARED_SECRET, PROXY_SHARED_SECRET);
|
|
1613
1621
|
const secFetchMode = request$1.headers.get("Sec-Fetch-Mode");
|
|
1614
1622
|
if (secFetchMode) request$1.headers.set(CoreHeaders.SEC_FETCH_MODE, secFetchMode);
|
|
1615
1623
|
return new Request$1(request$1.url, {
|
|
@@ -1710,10 +1718,8 @@ var PluginContext = class {
|
|
|
1710
1718
|
#sharedContext;
|
|
1711
1719
|
#resolvedPluginConfig;
|
|
1712
1720
|
#resolvedViteConfig;
|
|
1713
|
-
#proxySharedSecret;
|
|
1714
1721
|
constructor(sharedContext$1) {
|
|
1715
1722
|
this.#sharedContext = sharedContext$1;
|
|
1716
|
-
this.#proxySharedSecret = randomUUID();
|
|
1717
1723
|
}
|
|
1718
1724
|
/** Creates a new Miniflare instance or updates the existing instance */
|
|
1719
1725
|
async startOrUpdateMiniflare(options) {
|
|
@@ -1758,11 +1764,14 @@ var PluginContext = class {
|
|
|
1758
1764
|
get hasShownWorkerConfigWarnings() {
|
|
1759
1765
|
return this.#sharedContext.hasShownWorkerConfigWarnings;
|
|
1760
1766
|
}
|
|
1761
|
-
|
|
1762
|
-
this.#sharedContext.
|
|
1767
|
+
beginRestartingDevServer() {
|
|
1768
|
+
this.#sharedContext.restartingDevServerCount++;
|
|
1769
|
+
}
|
|
1770
|
+
endRestartingDevServer() {
|
|
1771
|
+
this.#sharedContext.restartingDevServerCount--;
|
|
1763
1772
|
}
|
|
1764
1773
|
get isRestartingDevServer() {
|
|
1765
|
-
return this.#sharedContext.
|
|
1774
|
+
return this.#sharedContext.restartingDevServerCount > 0;
|
|
1766
1775
|
}
|
|
1767
1776
|
setResolvedPluginConfig(resolvedPluginConfig) {
|
|
1768
1777
|
this.#resolvedPluginConfig = resolvedPluginConfig;
|
|
@@ -1803,9 +1812,6 @@ var PluginContext = class {
|
|
|
1803
1812
|
getNodeJsCompat(environmentName) {
|
|
1804
1813
|
return this.#getWorker(environmentName)?.nodeJsCompat;
|
|
1805
1814
|
}
|
|
1806
|
-
get proxySharedSecret() {
|
|
1807
|
-
return this.#proxySharedSecret;
|
|
1808
|
-
}
|
|
1809
1815
|
};
|
|
1810
1816
|
function assertIsNotPreview(ctx) {
|
|
1811
1817
|
assert(ctx.resolvedPluginConfig.type !== "preview", `Expected "assets-only" or "workers" plugin config`);
|
|
@@ -5262,6 +5268,7 @@ var defaultWranglerConfig = {
|
|
|
5262
5268
|
upload_source_maps: void 0,
|
|
5263
5269
|
assets: void 0,
|
|
5264
5270
|
observability: { enabled: true },
|
|
5271
|
+
cache: void 0,
|
|
5265
5272
|
compliance_region: void 0,
|
|
5266
5273
|
python_modules: { exclude: ["**/*.pyc"] },
|
|
5267
5274
|
define: {},
|
|
@@ -6157,6 +6164,7 @@ var validateStreamingTailConsumers = /* @__PURE__ */ __name((diagnostics, field,
|
|
|
6157
6164
|
function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDispatchNamespace, preserveOriginalMain, envName = "top level", topLevelEnv, useServiceEnvironments, rawConfig) {
|
|
6158
6165
|
deprecated(diagnostics, rawEnv, "node_compat", `The "node_compat" field is no longer supported as of Wrangler v4. Instead, use the \`nodejs_compat\` compatibility flag. This includes the functionality from legacy \`node_compat\` polyfills and natively implemented Node.js APIs. See https://developers.cloudflare.com/workers/runtime-apis/nodejs for more information.`, true, "Removed", "error");
|
|
6159
6166
|
experimental(diagnostics, rawEnv, "unsafe");
|
|
6167
|
+
experimental(diagnostics, rawEnv, "secrets");
|
|
6160
6168
|
const route = normalizeAndValidateRoute(diagnostics, topLevelEnv, rawEnv);
|
|
6161
6169
|
const account_id = inheritableInWranglerEnvironments(diagnostics, useServiceEnvironments, topLevelEnv, mutateEmptyStringAccountIDValue(diagnostics, rawEnv), "account_id", isString$2, void 0, void 0);
|
|
6162
6170
|
const routes = validateRoutes(diagnostics, topLevelEnv, rawEnv);
|
|
@@ -6186,6 +6194,7 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
|
|
|
6186
6194
|
workers_dev,
|
|
6187
6195
|
preview_urls,
|
|
6188
6196
|
vars: notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "vars", validateVars(envName), {}),
|
|
6197
|
+
secrets: notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "secrets", validateSecrets(envName), void 0),
|
|
6189
6198
|
define: notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "define", validateDefines(envName), {}),
|
|
6190
6199
|
durable_objects: notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "durable_objects", validateBindingsProperty(envName, validateDurableObjectBinding), { bindings: [] }),
|
|
6191
6200
|
workflows: notInheritable(diagnostics, topLevelEnv, rawConfig, rawEnv, envName, "workflows", all(validateBindingArray(envName, validateWorkflowBinding), validateUniqueNameProperty), []),
|
|
@@ -6228,6 +6237,7 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
|
|
|
6228
6237
|
logpush: inheritable(diagnostics, topLevelEnv, rawEnv, "logpush", isBoolean, void 0),
|
|
6229
6238
|
upload_source_maps: inheritable(diagnostics, topLevelEnv, rawEnv, "upload_source_maps", isBoolean, void 0),
|
|
6230
6239
|
observability: inheritable(diagnostics, topLevelEnv, rawEnv, "observability", validateObservability, void 0),
|
|
6240
|
+
cache: inheritable(diagnostics, topLevelEnv, rawEnv, "cache", validateCache, void 0),
|
|
6231
6241
|
compliance_region: inheritable(diagnostics, topLevelEnv, rawEnv, "compliance_region", isOneOf("public", "fedramp_high"), void 0),
|
|
6232
6242
|
python_modules: inheritable(diagnostics, topLevelEnv, rawEnv, "python_modules", validatePythonModules, { exclude: ["**/*.pyc"] })
|
|
6233
6243
|
};
|
|
@@ -6343,6 +6353,18 @@ Please add "vars.${varName}" to "env.${envName}".`);
|
|
|
6343
6353
|
}
|
|
6344
6354
|
return isValid$1;
|
|
6345
6355
|
}, "validateVars");
|
|
6356
|
+
var validateSecrets = /* @__PURE__ */ __name((envName) => (diagnostics, field, value, config) => {
|
|
6357
|
+
const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`;
|
|
6358
|
+
if (value === void 0) return true;
|
|
6359
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
6360
|
+
diagnostics.errors.push(`The field "${fieldPath}" should be an object but got ${JSON.stringify(value)}.`);
|
|
6361
|
+
return false;
|
|
6362
|
+
}
|
|
6363
|
+
let isValid$1 = true;
|
|
6364
|
+
validateAdditionalProperties(diagnostics, fieldPath, Object.keys(value), ["required"]);
|
|
6365
|
+
isValid$1 = validateOptionalTypedArray(diagnostics, `${fieldPath}.required`, value.required, "string") && isValid$1;
|
|
6366
|
+
return isValid$1;
|
|
6367
|
+
}, "validateSecrets");
|
|
6346
6368
|
var validateBindingsProperty = /* @__PURE__ */ __name((envName, validateBinding) => (diagnostics, field, value, config) => {
|
|
6347
6369
|
let isValid$1 = true;
|
|
6348
6370
|
const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`;
|
|
@@ -6478,12 +6500,26 @@ var validateWorkflowBinding = /* @__PURE__ */ __name((diagnostics, field, value)
|
|
|
6478
6500
|
diagnostics.errors.push(`"${field}" bindings should, optionally, have a boolean "remote" field but got ${JSON.stringify(value)}.`);
|
|
6479
6501
|
isValid$1 = false;
|
|
6480
6502
|
}
|
|
6503
|
+
if (hasProperty(value, "limits") && value.limits !== void 0) if (typeof value.limits !== "object" || value.limits === null || Array.isArray(value.limits)) {
|
|
6504
|
+
diagnostics.errors.push(`"${field}" bindings should, optionally, have an object "limits" field but got ${JSON.stringify(value)}.`);
|
|
6505
|
+
isValid$1 = false;
|
|
6506
|
+
} else {
|
|
6507
|
+
const limits = value.limits;
|
|
6508
|
+
if (limits.steps !== void 0) {
|
|
6509
|
+
if (typeof limits.steps !== "number" || !Number.isInteger(limits.steps) || limits.steps < 1) {
|
|
6510
|
+
diagnostics.errors.push(`"${field}" bindings "limits.steps" field must be a positive integer but got ${JSON.stringify(limits.steps)}.`);
|
|
6511
|
+
isValid$1 = false;
|
|
6512
|
+
} else if (limits.steps > 25e3) diagnostics.warnings.push(`"${field}" has a step limit of ${limits.steps}, which exceeds the production maximum of 25,000. This configuration may not work when deployed.`);
|
|
6513
|
+
}
|
|
6514
|
+
validateAdditionalProperties(diagnostics, `${field}.limits`, Object.keys(limits), ["steps"]);
|
|
6515
|
+
}
|
|
6481
6516
|
validateAdditionalProperties(diagnostics, field, Object.keys(value), [
|
|
6482
6517
|
"binding",
|
|
6483
6518
|
"name",
|
|
6484
6519
|
"class_name",
|
|
6485
6520
|
"script_name",
|
|
6486
|
-
"remote"
|
|
6521
|
+
"remote",
|
|
6522
|
+
"limits"
|
|
6487
6523
|
]);
|
|
6488
6524
|
return isValid$1;
|
|
6489
6525
|
}, "validateWorkflowBinding");
|
|
@@ -7083,6 +7119,7 @@ var validateBindingsHaveUniqueNames = /* @__PURE__ */ __name((diagnostics, confi
|
|
|
7083
7119
|
let hasDuplicates = false;
|
|
7084
7120
|
const bindingNamesArray = Object.entries(friendlyBindingNames);
|
|
7085
7121
|
const bindingsGroupedByType = Object.fromEntries(bindingNamesArray.map(([bindingType, binding]) => [binding, getBindingNames(bindingType === "queues" ? config[bindingType]?.producers : config[bindingType])]));
|
|
7122
|
+
bindingsGroupedByType["Secret"] = config.secrets?.required ?? [];
|
|
7086
7123
|
const bindingsGroupedByName = {};
|
|
7087
7124
|
for (const bindingType in bindingsGroupedByType) {
|
|
7088
7125
|
const bindingNames = bindingsGroupedByType[bindingType];
|
|
@@ -7520,6 +7557,18 @@ var validateObservability = /* @__PURE__ */ __name((diagnostics, field, value) =
|
|
|
7520
7557
|
if (samplingRate && (samplingRate < 0 || samplingRate > 1)) diagnostics.errors.push(`"${field}.head_sampling_rate" must be a value between 0 and 1.`);
|
|
7521
7558
|
return isValid$1;
|
|
7522
7559
|
}, "validateObservability");
|
|
7560
|
+
var validateCache = /* @__PURE__ */ __name((diagnostics, field, value) => {
|
|
7561
|
+
if (value === void 0) return true;
|
|
7562
|
+
if (typeof value !== "object" || value === null) {
|
|
7563
|
+
diagnostics.errors.push(`"${field}" should be an object but got ${JSON.stringify(value)}.`);
|
|
7564
|
+
return false;
|
|
7565
|
+
}
|
|
7566
|
+
const val = value;
|
|
7567
|
+
let isValid$1 = true;
|
|
7568
|
+
isValid$1 = validateRequiredProperty(diagnostics, field, "enabled", val.enabled, "boolean") && isValid$1;
|
|
7569
|
+
isValid$1 = validateAdditionalProperties(diagnostics, field, Object.keys(val), ["enabled"]) && isValid$1;
|
|
7570
|
+
return isValid$1;
|
|
7571
|
+
}, "validateCache");
|
|
7523
7572
|
function warnIfDurableObjectsHaveNoMigrations(diagnostics, durableObjects, migrations, configPath) {
|
|
7524
7573
|
if (Array.isArray(durableObjects.bindings) && durableObjects.bindings.length > 0) {
|
|
7525
7574
|
const exportedDurableObjects = (durableObjects.bindings || []).filter((binding) => !binding.script_name);
|
|
@@ -21733,10 +21782,11 @@ function initRunners(resolvedPluginConfig, viteDevServer, miniflare) {
|
|
|
21733
21782
|
/**
|
|
21734
21783
|
* Gets any variables with which to augment the Worker config in preview mode.
|
|
21735
21784
|
*
|
|
21736
|
-
* Calls `unstable_getVarsForDev` with the current Cloudflare environment to get local dev variables from the
|
|
21785
|
+
* Calls `unstable_getVarsForDev` with the current Cloudflare environment to get local dev variables from the .dev.vars/.env/process.env.
|
|
21786
|
+
* When `secrets` is defined in the Worker config, only declared secrets are loaded.
|
|
21737
21787
|
*/
|
|
21738
|
-
function getLocalDevVarsForPreview(
|
|
21739
|
-
const dotDevDotVars = wrangler.unstable_getVarsForDev(configPath, void 0, {}, cloudflareEnv);
|
|
21788
|
+
function getLocalDevVarsForPreview(config, cloudflareEnv) {
|
|
21789
|
+
const dotDevDotVars = wrangler.unstable_getVarsForDev(config.configPath, void 0, {}, cloudflareEnv, false, config.secrets);
|
|
21740
21790
|
const dotDevDotVarsEntries = Array.from(Object.entries(dotDevDotVars));
|
|
21741
21791
|
if (dotDevDotVarsEntries.length > 0) return dotDevDotVarsEntries.map(([key, { value }]) => {
|
|
21742
21792
|
return `${key} = "${value?.toString().replaceAll(`"`, `\\"`)}"\n`;
|
|
@@ -22272,6 +22322,18 @@ let DeploymentNotFoundError;
|
|
|
22272
22322
|
}({});
|
|
22273
22323
|
})(DeploymentNotFoundError || (DeploymentNotFoundError = {}));
|
|
22274
22324
|
|
|
22325
|
+
//#endregion
|
|
22326
|
+
//#region ../containers-shared/src/client/models/ExternalRegistryKind.ts
|
|
22327
|
+
/* istanbul ignore file */
|
|
22328
|
+
/**
|
|
22329
|
+
* The type of external registry that is being configured.
|
|
22330
|
+
*/
|
|
22331
|
+
let ExternalRegistryKind = /* @__PURE__ */ function(ExternalRegistryKind$1) {
|
|
22332
|
+
ExternalRegistryKind$1["ECR"] = "ECR";
|
|
22333
|
+
ExternalRegistryKind$1["DOCKER_HUB"] = "DockerHub";
|
|
22334
|
+
return ExternalRegistryKind$1;
|
|
22335
|
+
}({});
|
|
22336
|
+
|
|
22275
22337
|
//#endregion
|
|
22276
22338
|
//#region ../containers-shared/src/client/models/ImageRegistryAlreadyExistsError.ts
|
|
22277
22339
|
let ImageRegistryAlreadyExistsError;
|
|
@@ -23108,19 +23170,20 @@ async function cleanupDuplicateImageTags(dockerPath, imageTag) {
|
|
|
23108
23170
|
} catch {}
|
|
23109
23171
|
}
|
|
23110
23172
|
|
|
23111
|
-
//#endregion
|
|
23112
|
-
//#region ../containers-shared/src/client/models/ExternalRegistryKind.ts
|
|
23113
|
-
/* istanbul ignore file */
|
|
23114
|
-
/**
|
|
23115
|
-
* The type of external registry that is being configured.
|
|
23116
|
-
*/
|
|
23117
|
-
let ExternalRegistryKind = /* @__PURE__ */ function(ExternalRegistryKind$1) {
|
|
23118
|
-
ExternalRegistryKind$1["ECR"] = "ECR";
|
|
23119
|
-
return ExternalRegistryKind$1;
|
|
23120
|
-
}({});
|
|
23121
|
-
|
|
23122
23173
|
//#endregion
|
|
23123
23174
|
//#region ../containers-shared/src/images.ts
|
|
23175
|
+
const DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE = "cloudflare/proxy-everything:4dc6c7f@sha256:9621ef445ef120409e5d95bbd845ab2fa0f613636b59a01d998f5704f4096ae2";
|
|
23176
|
+
function getEgressInterceptorImage() {
|
|
23177
|
+
return process.env.MINIFLARE_CONTAINER_EGRESS_IMAGE ?? DEFAULT_CONTAINER_EGRESS_INTERCEPTOR_IMAGE;
|
|
23178
|
+
}
|
|
23179
|
+
async function pullEgressInterceptorImage(dockerPath) {
|
|
23180
|
+
await runDockerCmd(dockerPath, [
|
|
23181
|
+
"pull",
|
|
23182
|
+
getEgressInterceptorImage(),
|
|
23183
|
+
"--platform",
|
|
23184
|
+
"linux/amd64"
|
|
23185
|
+
]);
|
|
23186
|
+
}
|
|
23124
23187
|
async function pullImage(dockerPath, options, logger, isVite) {
|
|
23125
23188
|
const domain = new URL(`http://${options.image_uri}`).hostname;
|
|
23126
23189
|
const isExternalRegistry = domain !== getCloudflareContainerRegistry();
|
|
@@ -23198,6 +23261,7 @@ async function prepareContainerImagesForDev(args) {
|
|
|
23198
23261
|
await checkExposedPorts(dockerPath, options);
|
|
23199
23262
|
}
|
|
23200
23263
|
}
|
|
23264
|
+
if (!aborted && args.compatibilityFlags?.includes("experimental")) await pullEgressInterceptorImage(dockerPath);
|
|
23201
23265
|
}
|
|
23202
23266
|
|
|
23203
23267
|
//#endregion
|
|
@@ -23219,13 +23283,6 @@ const generateStaticRoutingRuleMatcher = (rules) => ({ request: request$1 }) =>
|
|
|
23219
23283
|
return false;
|
|
23220
23284
|
};
|
|
23221
23285
|
|
|
23222
|
-
//#endregion
|
|
23223
|
-
//#region src/constants.ts
|
|
23224
|
-
const ROUTER_WORKER_NAME = "__router-worker__";
|
|
23225
|
-
const ASSET_WORKER_NAME = "__asset-worker__";
|
|
23226
|
-
const VITE_PROXY_WORKER_NAME = "__vite_proxy_worker__";
|
|
23227
|
-
const kRequestType = Symbol("kRequestType");
|
|
23228
|
-
|
|
23229
23286
|
//#endregion
|
|
23230
23287
|
//#region src/containers.ts
|
|
23231
23288
|
/**
|
|
@@ -26037,7 +26094,7 @@ async function getDevMiniflareOptions(ctx, viteDevServer) {
|
|
|
26037
26094
|
return {
|
|
26038
26095
|
miniflareOptions: {
|
|
26039
26096
|
log: logger,
|
|
26040
|
-
unsafeProxySharedSecret:
|
|
26097
|
+
unsafeProxySharedSecret: PROXY_SHARED_SECRET,
|
|
26041
26098
|
logRequests: false,
|
|
26042
26099
|
inspectorPort: inputInspectorPort === false ? void 0 : inputInspectorPort,
|
|
26043
26100
|
unsafeDevRegistryPath: getDefaultDevRegistryPath(),
|
|
@@ -26142,7 +26199,7 @@ async function getPreviewMiniflareOptions(ctx, vitePreviewServer) {
|
|
|
26142
26199
|
return {
|
|
26143
26200
|
miniflareOptions: {
|
|
26144
26201
|
log: logger,
|
|
26145
|
-
unsafeProxySharedSecret:
|
|
26202
|
+
unsafeProxySharedSecret: PROXY_SHARED_SECRET,
|
|
26146
26203
|
inspectorPort: inputInspectorPort === false ? void 0 : inputInspectorPort,
|
|
26147
26204
|
unsafeDevRegistryPath: getDefaultDevRegistryPath(),
|
|
26148
26205
|
unsafeTriggerHandlers: true,
|
|
@@ -26283,7 +26340,7 @@ const devPlugin = createPlugin("dev", (ctx) => {
|
|
|
26283
26340
|
if (staticRouting) {
|
|
26284
26341
|
const excludeRulesMatcher = generateStaticRoutingRuleMatcher(staticRouting.asset_worker ?? []);
|
|
26285
26342
|
const includeRulesMatcher = generateStaticRoutingRuleMatcher(staticRouting.user_worker);
|
|
26286
|
-
const userWorkerHandler = createRequestHandler(
|
|
26343
|
+
const userWorkerHandler = createRequestHandler(async (request$1) => {
|
|
26287
26344
|
request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, entryWorkerName);
|
|
26288
26345
|
return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
|
|
26289
26346
|
});
|
|
@@ -26306,7 +26363,8 @@ const devPlugin = createPlugin("dev", (ctx) => {
|
|
|
26306
26363
|
onContainerImagePreparationStart: () => {},
|
|
26307
26364
|
onContainerImagePreparationEnd: () => {},
|
|
26308
26365
|
logger: viteDevServer.config.logger,
|
|
26309
|
-
isVite: true
|
|
26366
|
+
isVite: true,
|
|
26367
|
+
compatibilityFlags: ctx.allWorkerConfigs.flatMap((c) => c.compatibility_flags)
|
|
26310
26368
|
});
|
|
26311
26369
|
containerImageTags = new Set(containerTagToOptionsMap.keys());
|
|
26312
26370
|
viteDevServer.config.logger.info(import_picocolors$2.default.dim(import_picocolors$2.default.yellow("\n⚡️ Containers successfully built. To rebuild your containers during development, restart the Vite dev server (r + enter).")));
|
|
@@ -26325,7 +26383,7 @@ const devPlugin = createPlugin("dev", (ctx) => {
|
|
|
26325
26383
|
handle: preMiddleware
|
|
26326
26384
|
});
|
|
26327
26385
|
}
|
|
26328
|
-
viteDevServer.middlewares.use(createRequestHandler(
|
|
26386
|
+
viteDevServer.middlewares.use(createRequestHandler(async (request$1, req) => {
|
|
26329
26387
|
if (req[kRequestType] === "asset") {
|
|
26330
26388
|
request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, ASSET_WORKER_NAME);
|
|
26331
26389
|
return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
|
|
@@ -26477,7 +26535,7 @@ const outputConfigPlugin = createPlugin("output-config", (ctx) => {
|
|
|
26477
26535
|
};
|
|
26478
26536
|
if (inputWorkerConfig.upload_source_maps === void 0 && this.environment.config.build.sourcemap) outputConfig.upload_source_maps = true;
|
|
26479
26537
|
if (inputWorkerConfig.configPath) {
|
|
26480
|
-
const localDevVars = getLocalDevVarsForPreview(inputWorkerConfig
|
|
26538
|
+
const localDevVars = getLocalDevVarsForPreview(inputWorkerConfig, ctx.resolvedPluginConfig.cloudflareEnv);
|
|
26481
26539
|
if (localDevVars) this.emitFile({
|
|
26482
26540
|
type: "asset",
|
|
26483
26541
|
fileName: ".dev.vars",
|
|
@@ -26556,7 +26614,8 @@ const previewPlugin = createPlugin("preview", (ctx) => {
|
|
|
26556
26614
|
onContainerImagePreparationStart: () => {},
|
|
26557
26615
|
onContainerImagePreparationEnd: () => {},
|
|
26558
26616
|
logger: vitePreviewServer.config.logger,
|
|
26559
|
-
isVite: true
|
|
26617
|
+
isVite: true,
|
|
26618
|
+
compatibilityFlags: ctx.allWorkerConfigs.flatMap((c) => c.compatibility_flags)
|
|
26560
26619
|
});
|
|
26561
26620
|
const containerImageTags = new Set(containerTagToOptionsMap.keys());
|
|
26562
26621
|
vitePreviewServer.config.logger.info(import_picocolors$1.default.dim(import_picocolors$1.default.yellow("\n⚡️ Containers successfully built.\n")));
|
|
@@ -26565,7 +26624,7 @@ const previewPlugin = createPlugin("preview", (ctx) => {
|
|
|
26565
26624
|
};
|
|
26566
26625
|
}
|
|
26567
26626
|
handleWebSocket(vitePreviewServer.httpServer, ctx.miniflare);
|
|
26568
|
-
vitePreviewServer.middlewares.use(createRequestHandler(
|
|
26627
|
+
vitePreviewServer.middlewares.use(createRequestHandler((request$1) => {
|
|
26569
26628
|
return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
|
|
26570
26629
|
}));
|
|
26571
26630
|
} };
|
|
@@ -26645,7 +26704,7 @@ const triggerHandlersPlugin = createPlugin("trigger-handlers", (ctx) => {
|
|
|
26645
26704
|
const entryWorkerConfig = ctx.entryWorkerConfig;
|
|
26646
26705
|
if (!entryWorkerConfig) return;
|
|
26647
26706
|
const entryWorkerName = entryWorkerConfig.name;
|
|
26648
|
-
const requestHandler = createRequestHandler(
|
|
26707
|
+
const requestHandler = createRequestHandler((request$1) => {
|
|
26649
26708
|
request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, entryWorkerName);
|
|
26650
26709
|
return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
|
|
26651
26710
|
});
|
|
@@ -26685,7 +26744,7 @@ const wasmHelperPlugin = createPlugin("wasm-helper", (ctx) => {
|
|
|
26685
26744
|
//#region src/index.ts
|
|
26686
26745
|
const sharedContext = {
|
|
26687
26746
|
hasShownWorkerConfigWarnings: false,
|
|
26688
|
-
|
|
26747
|
+
restartingDevServerCount: 0
|
|
26689
26748
|
};
|
|
26690
26749
|
await assertWranglerVersion();
|
|
26691
26750
|
/**
|
|
@@ -26709,12 +26768,12 @@ function cloudflare(pluginConfig = {}) {
|
|
|
26709
26768
|
const restartServer = viteDevServer.restart.bind(viteDevServer);
|
|
26710
26769
|
viteDevServer.restart = async () => {
|
|
26711
26770
|
try {
|
|
26712
|
-
ctx.
|
|
26771
|
+
ctx.beginRestartingDevServer();
|
|
26713
26772
|
debuglog("From server.restart(): Restarting server...");
|
|
26714
26773
|
await restartServer();
|
|
26715
26774
|
debuglog("From server.restart(): Restarted server...");
|
|
26716
26775
|
} finally {
|
|
26717
|
-
ctx.
|
|
26776
|
+
ctx.endRestartingDevServer();
|
|
26718
26777
|
}
|
|
26719
26778
|
};
|
|
26720
26779
|
}
|