@cloudflare/vite-plugin 1.23.1 → 1.24.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.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import module$1, { builtinModules, createRequire } from "node:module";
2
2
  import assert from "node:assert";
3
+ import { randomUUID } from "node:crypto";
3
4
  import { CoreHeaders, Log, LogLevel, Miniflare, Request as Request$1, Response as Response$1, coupleWebSocket, getDefaultDevRegistryPath, getNodeCompat, getWorkerRegistry, kUnsafeEphemeralUniqueKey } from "miniflare";
4
5
  import * as wrangler from "wrangler";
5
6
  import * as nodePath from "node:path";
@@ -19,7 +20,6 @@ import { defineEnv } from "unenv";
19
20
  import * as fsp from "node:fs/promises";
20
21
  import net from "node:net";
21
22
  import { execFileSync, spawn } from "node:child_process";
22
- import { randomUUID } from "node:crypto";
23
23
  import path, { posix } from "path";
24
24
  import { WebSocketServer } from "ws";
25
25
 
@@ -1584,13 +1584,13 @@ function cleanUrl(url) {
1584
1584
  function withTrailingSlash(path$1) {
1585
1585
  return path$1.endsWith("/") ? path$1 : `${path$1}/`;
1586
1586
  }
1587
- function createRequestHandler(handler) {
1587
+ function createRequestHandler(ctx, handler) {
1588
1588
  return async (req, res, next) => {
1589
1589
  let request$1;
1590
1590
  try {
1591
1591
  if (req.originalUrl) req.url = req.originalUrl;
1592
1592
  request$1 = createRequest(req, res);
1593
- let response = await handler(toMiniflareRequest(request$1), req);
1593
+ let response = await handler(toMiniflareRequest(ctx, request$1), req);
1594
1594
  if (req.httpVersionMajor === 2) {
1595
1595
  response = new Response$1(response.body, response);
1596
1596
  response.headers.delete("transfer-encoding");
@@ -1605,10 +1605,11 @@ function createRequestHandler(handler) {
1605
1605
  function satisfiesViteVersion(minVersion$2) {
1606
1606
  return (0, import_gte.default)(version, minVersion$2);
1607
1607
  }
1608
- function toMiniflareRequest(request$1) {
1608
+ function toMiniflareRequest(ctx, request$1) {
1609
1609
  const host = request$1.headers.get("Host");
1610
1610
  const xForwardedHost = request$1.headers.get("X-Forwarded-Host");
1611
1611
  if (host && !xForwardedHost) request$1.headers.set("X-Forwarded-Host", host);
1612
+ request$1.headers.set(CoreHeaders.PROXY_SHARED_SECRET, ctx.proxySharedSecret);
1612
1613
  const secFetchMode = request$1.headers.get("Sec-Fetch-Mode");
1613
1614
  if (secFetchMode) request$1.headers.set(CoreHeaders.SEC_FETCH_MODE, secFetchMode);
1614
1615
  return new Request$1(request$1.url, {
@@ -1709,8 +1710,10 @@ var PluginContext = class {
1709
1710
  #sharedContext;
1710
1711
  #resolvedPluginConfig;
1711
1712
  #resolvedViteConfig;
1713
+ #proxySharedSecret;
1712
1714
  constructor(sharedContext$1) {
1713
1715
  this.#sharedContext = sharedContext$1;
1716
+ this.#proxySharedSecret = randomUUID();
1714
1717
  }
1715
1718
  /** Creates a new Miniflare instance or updates the existing instance */
1716
1719
  async startOrUpdateMiniflare(options) {
@@ -1800,6 +1803,9 @@ var PluginContext = class {
1800
1803
  getNodeJsCompat(environmentName) {
1801
1804
  return this.#getWorker(environmentName)?.nodeJsCompat;
1802
1805
  }
1806
+ get proxySharedSecret() {
1807
+ return this.#proxySharedSecret;
1808
+ }
1803
1809
  };
1804
1810
  function assertIsNotPreview(ctx) {
1805
1811
  assert(ctx.resolvedPluginConfig.type !== "preview", `Expected "assets-only" or "workers" plugin config`);
@@ -5346,7 +5352,7 @@ function assertOneOf(choices, value) {
5346
5352
  __name(assertOneOf, "assertOneOf");
5347
5353
  var getC3CommandFromEnv = getEnvironmentVariableFactory({
5348
5354
  variableName: "WRANGLER_C3_COMMAND",
5349
- defaultValue: /* @__PURE__ */ __name(() => "create cloudflare@^2.5.0", "defaultValue")
5355
+ defaultValue: /* @__PURE__ */ __name(() => "create cloudflare", "defaultValue")
5350
5356
  });
5351
5357
  var getWranglerSendMetricsFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_SEND_METRICS" });
5352
5358
  var getWranglerSendErrorReportsFromEnv = getBooleanEnvironmentVariableFactory({ variableName: "WRANGLER_SEND_ERROR_REPORTS" });
@@ -5437,6 +5443,11 @@ var getLocalExplorerEnabledFromEnv = getBooleanEnvironmentVariableFactory({
5437
5443
  variableName: "X_LOCAL_EXPLORER",
5438
5444
  defaultValue: false
5439
5445
  });
5446
+ var getCfFetchEnabledFromEnv = getBooleanEnvironmentVariableFactory({
5447
+ variableName: "CLOUDFLARE_CF_FETCH_ENABLED",
5448
+ defaultValue: true
5449
+ });
5450
+ var getCfFetchPathFromEnv = getEnvironmentVariableFactory({ variableName: "CLOUDFLARE_CF_FETCH_PATH" });
5440
5451
  var Diagnostics = class {
5441
5452
  /**
5442
5453
  * Create a new Diagnostics object.
@@ -5723,6 +5734,47 @@ var friendlyBindingNames = {
5723
5734
  worker_loaders: "Worker Loader",
5724
5735
  vpc_services: "VPC Service"
5725
5736
  };
5737
+ var bindingTypeFriendlyNames = {
5738
+ plain_text: "Environment Variable",
5739
+ secret_text: "Environment Variable",
5740
+ json: "Environment Variable",
5741
+ kv_namespace: "KV Namespace",
5742
+ send_email: "Send Email",
5743
+ wasm_module: "Wasm Module",
5744
+ text_blob: "Text Blob",
5745
+ browser: "Browser",
5746
+ ai: "AI",
5747
+ images: "Images",
5748
+ version_metadata: "Worker Version Metadata",
5749
+ data_blob: "Data Blob",
5750
+ durable_object_namespace: "Durable Object",
5751
+ workflow: "Workflow",
5752
+ queue: "Queue",
5753
+ r2_bucket: "R2 Bucket",
5754
+ d1: "D1 Database",
5755
+ vectorize: "Vectorize Index",
5756
+ hyperdrive: "Hyperdrive Config",
5757
+ service: "Worker",
5758
+ fetcher: "Service Binding",
5759
+ analytics_engine: "Analytics Engine Dataset",
5760
+ dispatch_namespace: "Dispatch Namespace",
5761
+ mtls_certificate: "mTLS Certificate",
5762
+ pipeline: "Pipeline",
5763
+ secrets_store_secret: "Secrets Store Secret",
5764
+ logfwdr: "logfwdr",
5765
+ unsafe_hello_world: "Hello World",
5766
+ ratelimit: "Rate Limit",
5767
+ worker_loader: "Worker Loader",
5768
+ vpc_service: "VPC Service",
5769
+ media: "Media",
5770
+ assets: "Assets"
5771
+ };
5772
+ function getBindingTypeFriendlyName(bindingType) {
5773
+ if (bindingType in bindingTypeFriendlyNames) return bindingTypeFriendlyNames[bindingType];
5774
+ if (bindingType.startsWith("unsafe_")) return "Unsafe Metadata";
5775
+ return bindingType;
5776
+ }
5777
+ __name(getBindingTypeFriendlyName, "getBindingTypeFriendlyName");
5726
5778
  var ENGLISH = new Intl.ListFormat("en-US");
5727
5779
  var ALLOWED_INSTANCE_TYPES = [
5728
5780
  "lite",
@@ -15938,7 +15990,7 @@ function parseRedirects(input, { htmlHandling = void 0, maxStaticRules = MAX_STA
15938
15990
  invalid.push({ message: `Ignoring line ${i$1 + 1} as it exceeds the maximum allowed length of ${maxLineLength}.` });
15939
15991
  continue;
15940
15992
  }
15941
- const tokens = line.split(/\s+/);
15993
+ const tokens = line.replace(/\s+#.*$/, "").split(/\s+/);
15942
15994
  if (tokens.length < 2 || tokens.length > 3) {
15943
15995
  invalid.push({
15944
15996
  line,
@@ -25996,6 +26048,7 @@ async function getDevMiniflareOptions(ctx, viteDevServer) {
25996
26048
  return {
25997
26049
  miniflareOptions: {
25998
26050
  log: logger,
26051
+ unsafeProxySharedSecret: ctx.proxySharedSecret,
25999
26052
  logRequests: false,
26000
26053
  inspectorPort: inputInspectorPort === false ? void 0 : inputInspectorPort,
26001
26054
  unsafeDevRegistryPath: getDefaultDevRegistryPath(),
@@ -26100,6 +26153,7 @@ async function getPreviewMiniflareOptions(ctx, vitePreviewServer) {
26100
26153
  return {
26101
26154
  miniflareOptions: {
26102
26155
  log: logger,
26156
+ unsafeProxySharedSecret: ctx.proxySharedSecret,
26103
26157
  inspectorPort: inputInspectorPort === false ? void 0 : inputInspectorPort,
26104
26158
  unsafeDevRegistryPath: getDefaultDevRegistryPath(),
26105
26159
  unsafeTriggerHandlers: true,
@@ -26240,7 +26294,7 @@ const devPlugin = createPlugin("dev", (ctx) => {
26240
26294
  if (staticRouting) {
26241
26295
  const excludeRulesMatcher = generateStaticRoutingRuleMatcher(staticRouting.asset_worker ?? []);
26242
26296
  const includeRulesMatcher = generateStaticRoutingRuleMatcher(staticRouting.user_worker);
26243
- const userWorkerHandler = createRequestHandler(async (request$1) => {
26297
+ const userWorkerHandler = createRequestHandler(ctx, async (request$1) => {
26244
26298
  request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, entryWorkerName);
26245
26299
  return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
26246
26300
  });
@@ -26282,7 +26336,7 @@ const devPlugin = createPlugin("dev", (ctx) => {
26282
26336
  handle: preMiddleware
26283
26337
  });
26284
26338
  }
26285
- viteDevServer.middlewares.use(createRequestHandler(async (request$1, req) => {
26339
+ viteDevServer.middlewares.use(createRequestHandler(ctx, async (request$1, req) => {
26286
26340
  if (req[kRequestType] === "asset") {
26287
26341
  request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, ASSET_WORKER_NAME);
26288
26342
  return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
@@ -26432,6 +26486,7 @@ const outputConfigPlugin = createPlugin("output-config", (ctx) => {
26432
26486
  directory: getAssetsDirectory(this.environment.config.build.outDir, ctx.resolvedViteConfig)
26433
26487
  } : void 0
26434
26488
  };
26489
+ if (inputWorkerConfig.upload_source_maps === void 0 && this.environment.config.build.sourcemap) outputConfig.upload_source_maps = true;
26435
26490
  if (inputWorkerConfig.configPath) {
26436
26491
  const localDevVars = getLocalDevVarsForPreview(inputWorkerConfig.configPath, ctx.resolvedPluginConfig.cloudflareEnv);
26437
26492
  if (localDevVars) this.emitFile({
@@ -26514,7 +26569,7 @@ const previewPlugin = createPlugin("preview", (ctx) => {
26514
26569
  };
26515
26570
  }
26516
26571
  handleWebSocket(vitePreviewServer.httpServer, ctx.miniflare);
26517
- vitePreviewServer.middlewares.use(createRequestHandler((request$1) => {
26572
+ vitePreviewServer.middlewares.use(createRequestHandler(ctx, (request$1) => {
26518
26573
  return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
26519
26574
  }));
26520
26575
  } };
@@ -26592,7 +26647,7 @@ const triggerHandlersPlugin = createPlugin("trigger-handlers", (ctx) => {
26592
26647
  const entryWorkerConfig = ctx.entryWorkerConfig;
26593
26648
  if (!entryWorkerConfig) return;
26594
26649
  const entryWorkerName = entryWorkerConfig.name;
26595
- const requestHandler = createRequestHandler((request$1) => {
26650
+ const requestHandler = createRequestHandler(ctx, (request$1) => {
26596
26651
  request$1.headers.set(CoreHeaders.ROUTE_OVERRIDE, entryWorkerName);
26597
26652
  return ctx.miniflare.dispatchFetch(request$1, { redirect: "manual" });
26598
26653
  });