@cloudflare/workers-utils 0.46.0 → 0.47.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.
@@ -252,6 +252,7 @@ type WorkerMetadataBinding = {
252
252
  type AssetConfigMetadata = {
253
253
  html_handling?: AssetConfig["html_handling"];
254
254
  not_found_handling?: AssetConfig["not_found_handling"];
255
+ base_path?: AssetConfig["base_path"];
255
256
  run_worker_first?: boolean | string[];
256
257
  _redirects?: string;
257
258
  _headers?: string;
@@ -2059,6 +2060,10 @@ type Assets = {
2059
2060
  html_handling?: "auto-trailing-slash" | "force-trailing-slash" | "drop-trailing-slash" | "none";
2060
2061
  /** How to handle requests that do not match an asset. */
2061
2062
  not_found_handling?: "single-page-application" | "404-page" | "none";
2063
+ /**
2064
+ * The public URL prefix under which the application is served, e.g. `/subpath/`.
2065
+ */
2066
+ base_path?: string;
2062
2067
  /**
2063
2068
  * Matches will be routed to the User Worker, and matches to negative rules will go to the Asset Worker.
2064
2069
  *
package/dist/browser.mjs CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
4
  // src/default-compat-date.ts
5
- var DEFAULT_COMPAT_DATE = "2026-10-01";
5
+ var DEFAULT_COMPAT_DATE = "2026-10-06";
6
6
 
7
7
  // src/assert-never.ts
8
8
  function assertNever(_value) {
@@ -3043,12 +3043,23 @@ function findRedirectedWranglerConfig(cwd, userConfigPath) {
3043
3043
  );
3044
3044
  }
3045
3045
  if (userConfigPath) {
3046
- if (path.join(path.dirname(userConfigPath), PATH_TO_DEPLOY_CONFIG) !== deployConfigPath) {
3046
+ const expectedDeployConfigPath = path.join(
3047
+ path.dirname(userConfigPath),
3048
+ PATH_TO_DEPLOY_CONFIG
3049
+ );
3050
+ if (expectedDeployConfigPath !== deployConfigPath) {
3047
3051
  throw new UserError(
3048
3052
  esm_default`
3049
3053
  Found both a user configuration file at "${path.relative(".", userConfigPath)}"
3050
3054
  and a deploy configuration file at "${path.relative(".", deployConfigPath)}".
3051
3055
  But these do not share the same base path so it is not clear which should be used.
3056
+
3057
+ A deploy configuration file is generated by a build tool to redirect Wrangler to the configuration it generated.
3058
+ It is only applied when it sits alongside the user configuration file, which here would be "${path.relative(".", expectedDeployConfigPath)}".
3059
+
3060
+ Please either delete "${path.relative(".", deployConfigPath)}" if it is left over from a previous build,
3061
+ or try running this command from the directory containing the configuration you want to use.
3062
+ See https://developers.cloudflare.com/workers/wrangler/configuration/#generated-wrangler-configuration
3052
3063
  `,
3053
3064
  { telemetryMessage: false }
3054
3065
  );
@@ -846,6 +846,7 @@ type WorkerMetadataBinding = {
846
846
  type AssetConfigMetadata = {
847
847
  html_handling?: AssetConfig["html_handling"];
848
848
  not_found_handling?: AssetConfig["not_found_handling"];
849
+ base_path?: AssetConfig["base_path"];
849
850
  run_worker_first?: boolean | string[];
850
851
  _redirects?: string;
851
852
  _headers?: string;
@@ -1340,6 +1341,8 @@ interface StartDevWorkerInput {
1340
1341
  tunnel?: {
1341
1342
  enabled: boolean;
1342
1343
  name?: string;
1344
+ /** Email addresses or domain patterns allowed to authenticate to a Quick Tunnel. */
1345
+ allowedMail?: string[];
1343
1346
  };
1344
1347
  };
1345
1348
  legacy?: {
@@ -3135,6 +3138,10 @@ type Assets = {
3135
3138
  html_handling?: "auto-trailing-slash" | "force-trailing-slash" | "drop-trailing-slash" | "none";
3136
3139
  /** How to handle requests that do not match an asset. */
3137
3140
  not_found_handling?: "single-page-application" | "404-page" | "none";
3141
+ /**
3142
+ * The public URL prefix under which the application is served, e.g. `/subpath/`.
3143
+ */
3144
+ base_path?: string;
3138
3145
  /**
3139
3146
  * Matches will be routed to the User Worker, and matches to negative rules will go to the Asset Worker.
3140
3147
  *
@@ -1,4 +1,4 @@
1
- export { s as COMPLIANCE_REGION_CONFIG_PUBLIC, t as COMPLIANCE_REGION_CONFIG_UNKNOWN, h as ComplianceConfig, bO as getCloudflareApiBaseUrl, bQ as getCloudflareComplianceRegion, bR as getCloudflareContainerRegistry, bW as getComplianceRegionSubdomain } from './compliance-vunjXD3w.mjs';
1
+ export { s as COMPLIANCE_REGION_CONFIG_PUBLIC, t as COMPLIANCE_REGION_CONFIG_UNKNOWN, h as ComplianceConfig, bO as getCloudflareApiBaseUrl, bQ as getCloudflareComplianceRegion, bR as getCloudflareContainerRegistry, bW as getComplianceRegionSubdomain } from './compliance-BiKBqVqG.mjs';
2
2
  import 'node:url';
3
3
  import 'undici';
4
4
  import '@cloudflare/workers-shared';
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { C as ComputedFields, B as Binding, R as RawConfig, b as Config, E as Exports, D as DurableObjectExport, W as WorkerEntrypointExport, c as WorkflowExport, d as ContainerApp, e as WorkerMetadataBinding, T as TailConsumer, f as WorkerMetadata, g as CfTailConsumer, L as Logger, A as ApiCredentials, h as ComplianceConfig, i as Route } from './compliance-vunjXD3w.mjs';
2
- export { j as ARTIFACTS_EVENT_TYPES, k as Access, l as ArtifactsEventTrigger, m as ArtifactsEventType, n as AssetConfigMetadata, o as Assets, p as AssetsOptions, q as AsyncHook, r as BinaryFile, s as COMPLIANCE_REGION_CONFIG_PUBLIC, t as COMPLIANCE_REGION_CONFIG_UNKNOWN, u as CacheOptions, v as CfAIBinding, w as CfAISearch, x as CfAISearchNamespace, y as CfAccount, z as CfAgentMemory, F as CfAnalyticsEngineDataset, G as CfAnalyticsSQLBinding, H as CfArtifacts, I as CfAssetsBinding, J as CfBrowserBinding, K as CfCapnp, M as CfD1Database, N as CfDataBlobBindings, O as CfDevPluginCfg, P as CfDispatchNamespace, Q as CfDurableObject, S as CfDurableObjectMigrations, U as CfExports, V as CfFlagship, X as CfHelloWorld, Y as CfHyperdrive, Z as CfImagesBinding, _ as CfK2Binding, $ as CfKvNamespace, a0 as CfLogfwdr, a1 as CfLogfwdrBinding, a2 as CfMTlsCertificate, a3 as CfMediaBinding, a4 as CfModule, a5 as CfModuleType, a6 as CfPipeline, a7 as CfPlacement, a8 as CfQueue, a9 as CfR2Bucket, aa as CfRateLimit, ab as CfScriptFormat, ac as CfSecretsStoreSecrets, ad as CfSendEmailBindings, ae as CfService, af as CfStreamBinding, ag as CfTextBlobBindings, ah as CfUnsafe, ai as CfUnsafeBinding, aj as CfUserLimits, ak as CfVars, al as CfVectorize, am as CfVersionMetadataBinding, an as CfVpcNetwork, ao as CfVpcService, ap as CfWasmModuleBindings, aq as CfWorkerContext, ar as CfWorkerInit, as as CfWorkerLoader, at as CfWorkerSourceMap, au as CfWorkflow, av as CloudchamberConfig, aw as ConfigFields, ax as ConfigModuleRuleType, ay as ConfiguredExport, az as ConnectHandler, aA as ContainerEngine, aB as ContainerObservability, aC as CustomDomainRoute, aD as DispatchNamespaceOutbound, aE as DockerConfiguration, aF as DurableObjectBindings, aG as DurableObjectCodeUpdateStrategy, aH as DurableObjectContainerImage, aI as DurableObjectExportStorage, aJ as DurableObjectMigration, aK as DurableObjectsConfig, aL as ENVIRONMENT_TAG_PREFIX, aM as Entry, aN as Environment, aO as EnvironmentNonInheritable, aP as ExportsReconciliationEntryBase, aQ as ExportsReconciliationErrorDetail, aR as ExportsReconciliationInfo, aS as ExportsReconciliationRename, aT as ExportsReconciliationResult, aU as ExportsReconciliationTransfer, aV as ExportsReconciliationTransferPending, aW as ExportsReconciliationWarning, aX as FetchKVGetValueFetcher, aY as FetchListResultFetcher, aZ as FetchPagedListResultFetcher, a_ as FetchResult, a$ as FetchResultFetcher, b0 as File, b1 as Hook, b2 as HookValues, b3 as INHERIT_SYMBOL, b4 as JSON_CONFIG_FORMATS, b5 as Json, b6 as LOGGER_LEVELS, b7 as LegacyAssetPaths, b8 as LocalS3Credentials, b9 as LogLevel, ba as LoggerLevel, bb as NodeJSCompatMode, bc as Observability, bd as PATH_TO_DEPLOY_CONFIG, be as PreviewsConfig, bf as RawDevConfig, bg as RawDurableObjectsConfig, bh as RawEnvironment, a as RedirectedRawConfig, bi as Rule, bj as SERVICE_TAG_PREFIX, bk as ServiceFetch, bl as ServiceMetadataRes, bm as StartDevWorkerInput, bn as StreamingTailConsumer, bo as TcpConnectHandler, bp as Trigger, bq as UdpConnectHandler, br as UserLimits, bs as ValidatedAssetsOptions, bt as WorkflowBinding, bu as ZoneIdRoute, bv as ZoneNameRoute, bw as addAuthorizationHeader, bx as defaultWranglerConfig, by as extractAccountTag, bz as extractWAFBlockRayId, bA as fetchInternalBase, bB as fetchKVGetValueBase, bC as fetchListResultBase, bD as fetchResultBase, bE as getBrowserRenderingHeadfulFromEnv, bF as getBuildConditionsFromEnv, bG as getBuildPlatformFromEnv, bH as getC3CommandFromEnv, bI as getCIGeneratePreviewAlias, bJ as getCIMatchTag, bK as getCIOverrideName, bL as getCIOverrideNetworkModeHost, bM as getCfFetchEnabledFromEnv, bN as getCfFetchPathFromEnv, bO as getCloudflareApiBaseUrl, bP as getCloudflareApiEnvironmentFromEnv, bQ as getCloudflareComplianceRegion, bR as getCloudflareContainerRegistry, bS as getCloudflareEnv, bT as getCloudflareIncludeProcessEnvFromEnv, bU as getCloudflareLoadDevVarsFromDotEnv, bV as getCloudflaredPathFromEnv, bW as getComplianceRegionSubdomain, bX as getD1ExtraLocationChoices, bY as getDisableConfigWatching, bZ as getLocalExplorerEnabledFromEnv, b_ as getLocalObservabilityEnabledFromEnv, b$ as getNoSkillsUpdatePromptsFromEnv, c0 as getOpenNextDeployFromEnv, c1 as getOutputFileDirectoryFromEnv, c2 as getOutputFilePathFromEnv, c3 as getRegistryPath, c4 as getSanitizeLogs, c5 as getSubdomainMixedStateCheckDisabled, c6 as getTraceHeader, c7 as getWorkersCIBranchName, c8 as getWranglerCacheDirFromEnv, c9 as getWranglerHideBanner, ca as getWranglerSendErrorReportsFromEnv, cb as getWranglerSendMetricsFromEnv, cc as hasCursor, cd as hasMorePages, ce as isDoNotTrackEnabled, cf as isWAFBlockResponse, cg as maybeAddTraceHeader, ch as parseRetryAfterMs, ci as parseRetryAfterValue, cj as performApiFetchBase, ck as renderError, cl as throwFetchError, cm as truncate } from './compliance-vunjXD3w.mjs';
1
+ import { C as ComputedFields, B as Binding, R as RawConfig, b as Config, E as Exports, D as DurableObjectExport, W as WorkerEntrypointExport, c as WorkflowExport, d as ContainerApp, e as WorkerMetadataBinding, T as TailConsumer, f as WorkerMetadata, g as CfTailConsumer, L as Logger, A as ApiCredentials, h as ComplianceConfig, i as Route } from './compliance-BiKBqVqG.mjs';
2
+ export { j as ARTIFACTS_EVENT_TYPES, k as Access, l as ArtifactsEventTrigger, m as ArtifactsEventType, n as AssetConfigMetadata, o as Assets, p as AssetsOptions, q as AsyncHook, r as BinaryFile, s as COMPLIANCE_REGION_CONFIG_PUBLIC, t as COMPLIANCE_REGION_CONFIG_UNKNOWN, u as CacheOptions, v as CfAIBinding, w as CfAISearch, x as CfAISearchNamespace, y as CfAccount, z as CfAgentMemory, F as CfAnalyticsEngineDataset, G as CfAnalyticsSQLBinding, H as CfArtifacts, I as CfAssetsBinding, J as CfBrowserBinding, K as CfCapnp, M as CfD1Database, N as CfDataBlobBindings, O as CfDevPluginCfg, P as CfDispatchNamespace, Q as CfDurableObject, S as CfDurableObjectMigrations, U as CfExports, V as CfFlagship, X as CfHelloWorld, Y as CfHyperdrive, Z as CfImagesBinding, _ as CfK2Binding, $ as CfKvNamespace, a0 as CfLogfwdr, a1 as CfLogfwdrBinding, a2 as CfMTlsCertificate, a3 as CfMediaBinding, a4 as CfModule, a5 as CfModuleType, a6 as CfPipeline, a7 as CfPlacement, a8 as CfQueue, a9 as CfR2Bucket, aa as CfRateLimit, ab as CfScriptFormat, ac as CfSecretsStoreSecrets, ad as CfSendEmailBindings, ae as CfService, af as CfStreamBinding, ag as CfTextBlobBindings, ah as CfUnsafe, ai as CfUnsafeBinding, aj as CfUserLimits, ak as CfVars, al as CfVectorize, am as CfVersionMetadataBinding, an as CfVpcNetwork, ao as CfVpcService, ap as CfWasmModuleBindings, aq as CfWorkerContext, ar as CfWorkerInit, as as CfWorkerLoader, at as CfWorkerSourceMap, au as CfWorkflow, av as CloudchamberConfig, aw as ConfigFields, ax as ConfigModuleRuleType, ay as ConfiguredExport, az as ConnectHandler, aA as ContainerEngine, aB as ContainerObservability, aC as CustomDomainRoute, aD as DispatchNamespaceOutbound, aE as DockerConfiguration, aF as DurableObjectBindings, aG as DurableObjectCodeUpdateStrategy, aH as DurableObjectContainerImage, aI as DurableObjectExportStorage, aJ as DurableObjectMigration, aK as DurableObjectsConfig, aL as ENVIRONMENT_TAG_PREFIX, aM as Entry, aN as Environment, aO as EnvironmentNonInheritable, aP as ExportsReconciliationEntryBase, aQ as ExportsReconciliationErrorDetail, aR as ExportsReconciliationInfo, aS as ExportsReconciliationRename, aT as ExportsReconciliationResult, aU as ExportsReconciliationTransfer, aV as ExportsReconciliationTransferPending, aW as ExportsReconciliationWarning, aX as FetchKVGetValueFetcher, aY as FetchListResultFetcher, aZ as FetchPagedListResultFetcher, a_ as FetchResult, a$ as FetchResultFetcher, b0 as File, b1 as Hook, b2 as HookValues, b3 as INHERIT_SYMBOL, b4 as JSON_CONFIG_FORMATS, b5 as Json, b6 as LOGGER_LEVELS, b7 as LegacyAssetPaths, b8 as LocalS3Credentials, b9 as LogLevel, ba as LoggerLevel, bb as NodeJSCompatMode, bc as Observability, bd as PATH_TO_DEPLOY_CONFIG, be as PreviewsConfig, bf as RawDevConfig, bg as RawDurableObjectsConfig, bh as RawEnvironment, a as RedirectedRawConfig, bi as Rule, bj as SERVICE_TAG_PREFIX, bk as ServiceFetch, bl as ServiceMetadataRes, bm as StartDevWorkerInput, bn as StreamingTailConsumer, bo as TcpConnectHandler, bp as Trigger, bq as UdpConnectHandler, br as UserLimits, bs as ValidatedAssetsOptions, bt as WorkflowBinding, bu as ZoneIdRoute, bv as ZoneNameRoute, bw as addAuthorizationHeader, bx as defaultWranglerConfig, by as extractAccountTag, bz as extractWAFBlockRayId, bA as fetchInternalBase, bB as fetchKVGetValueBase, bC as fetchListResultBase, bD as fetchResultBase, bE as getBrowserRenderingHeadfulFromEnv, bF as getBuildConditionsFromEnv, bG as getBuildPlatformFromEnv, bH as getC3CommandFromEnv, bI as getCIGeneratePreviewAlias, bJ as getCIMatchTag, bK as getCIOverrideName, bL as getCIOverrideNetworkModeHost, bM as getCfFetchEnabledFromEnv, bN as getCfFetchPathFromEnv, bO as getCloudflareApiBaseUrl, bP as getCloudflareApiEnvironmentFromEnv, bQ as getCloudflareComplianceRegion, bR as getCloudflareContainerRegistry, bS as getCloudflareEnv, bT as getCloudflareIncludeProcessEnvFromEnv, bU as getCloudflareLoadDevVarsFromDotEnv, bV as getCloudflaredPathFromEnv, bW as getComplianceRegionSubdomain, bX as getD1ExtraLocationChoices, bY as getDisableConfigWatching, bZ as getLocalExplorerEnabledFromEnv, b_ as getLocalObservabilityEnabledFromEnv, b$ as getNoSkillsUpdatePromptsFromEnv, c0 as getOpenNextDeployFromEnv, c1 as getOutputFileDirectoryFromEnv, c2 as getOutputFilePathFromEnv, c3 as getRegistryPath, c4 as getSanitizeLogs, c5 as getSubdomainMixedStateCheckDisabled, c6 as getTraceHeader, c7 as getWorkersCIBranchName, c8 as getWranglerCacheDirFromEnv, c9 as getWranglerHideBanner, ca as getWranglerSendErrorReportsFromEnv, cb as getWranglerSendMetricsFromEnv, cc as hasCursor, cd as hasMorePages, ce as isDoNotTrackEnabled, cf as isWAFBlockResponse, cg as maybeAddTraceHeader, ch as parseRetryAfterMs, ci as parseRetryAfterValue, cj as performApiFetchBase, ck as renderError, cl as throwFetchError, cm as truncate } from './compliance-BiKBqVqG.mjs';
3
3
  import * as jsoncParser from 'jsonc-parser';
4
4
  import { UserError, TelemetryMessage } from './errors.mjs';
5
5
  export { CommandLineArgsError, DeprecationError, FatalError, JsonFriendlyFatalError, MissingConfigError, createFatalError } from './errors.mjs';
@@ -878,6 +878,8 @@ interface Tunnel {
878
878
  interface TunnelOptions {
879
879
  origin: URL;
880
880
  token?: string;
881
+ /** Email addresses or domain patterns allowed to authenticate to a Quick Tunnel. */
882
+ allowedMail?: string[];
881
883
  timeoutMs?: number;
882
884
  expiryMs?: number;
883
885
  reminderIntervalMs?: number;
package/dist/index.mjs CHANGED
@@ -2,8 +2,8 @@ import { createRequire } from 'node:module';
2
2
  export { MetricsRegistry } from './chunk-6G6FCMPX.mjs';
3
3
  import { external_exports } from './chunk-PWC7WAOU.mjs';
4
4
  export { formatZodError } from './chunk-PWC7WAOU.mjs';
5
- import { isRedirectedRawConfig, configFileName, formatConfigSnippet, partitionExports, getDurableObjectExports, getContainerNameToClassNameMap, parsePackageJSON, readFileSync, ParseError, parseJSON, APIError, isLiveDurableObjectExport, dir, parseTOML, modify, applyEdits, format, stringify, parseJSONC } from './chunk-AUSY7DKT.mjs';
6
- export { APIError, ENVIRONMENT_TAG_PREFIX, INHERIT_SYMBOL, JSON_CONFIG_FORMATS, PATH_TO_DEPLOY_CONFIG, ParseError, SERVICE_TAG_PREFIX, configFileName, configFormat, experimental_readRawConfig, findWranglerConfig, formatConfigSnippet, getContainerDurableObjectClassNames, getContainerNameToClassNameMap, getDurableObjectClassNameToUseSQLiteMap, getDurableObjectContainerApps, getDurableObjectExports, getResolvedDurableObjectContainerApps, hasDurableObjectExports, indexLocation, isDurableObjectContainerApp, isLiveDurableObjectExport, isRedirectedConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, partitionExports, readFileSync, readFileSyncToBuffer, resolveContainerClassName, resolveWranglerConfigPath, searchLocation, validateDurableObjectContainerApplications } from './chunk-AUSY7DKT.mjs';
5
+ import { isRedirectedRawConfig, configFileName, formatConfigSnippet, partitionExports, getDurableObjectExports, getContainerNameToClassNameMap, parsePackageJSON, readFileSync, ParseError, parseJSON, APIError, isLiveDurableObjectExport, dir, parseTOML, modify, applyEdits, format, stringify, parseJSONC } from './chunk-TAK63GWY.mjs';
6
+ export { APIError, ENVIRONMENT_TAG_PREFIX, INHERIT_SYMBOL, JSON_CONFIG_FORMATS, PATH_TO_DEPLOY_CONFIG, ParseError, SERVICE_TAG_PREFIX, configFileName, configFormat, experimental_readRawConfig, findWranglerConfig, formatConfigSnippet, getContainerDurableObjectClassNames, getContainerNameToClassNameMap, getDurableObjectClassNameToUseSQLiteMap, getDurableObjectContainerApps, getDurableObjectExports, getResolvedDurableObjectContainerApps, hasDurableObjectExports, indexLocation, isDurableObjectContainerApp, isLiveDurableObjectExport, isRedirectedConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, partitionExports, readFileSync, readFileSyncToBuffer, resolveContainerClassName, resolveWranglerConfigPath, searchLocation, validateDurableObjectContainerApplications } from './chunk-TAK63GWY.mjs';
7
7
  export { NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags } from './chunk-2Q77CKVU.mjs';
8
8
  import { getCloudflareEnv, getCloudflareContainerRegistry, getCloudflareApiBaseUrl, getTraceHeader, getCloudflaredPathFromEnv, getOutputFilePathFromEnv, getOutputFileDirectoryFromEnv, getCIOverrideName, getWranglerCacheDirFromEnv } from './chunk-FR75DWDU.mjs';
9
9
  export { COMPLIANCE_REGION_CONFIG_PUBLIC, COMPLIANCE_REGION_CONFIG_UNKNOWN, getBrowserRenderingHeadfulFromEnv, getBuildConditionsFromEnv, getBuildPlatformFromEnv, getC3CommandFromEnv, getCIGeneratePreviewAlias, getCIMatchTag, getCIOverrideName, getCIOverrideNetworkModeHost, getCfFetchEnabledFromEnv, getCfFetchPathFromEnv, getCloudflareApiBaseUrl, getCloudflareApiEnvironmentFromEnv, getCloudflareComplianceRegion, getCloudflareContainerRegistry, getCloudflareEnv, getCloudflareIncludeProcessEnvFromEnv, getCloudflareLoadDevVarsFromDotEnv, getCloudflaredPathFromEnv, getComplianceRegionSubdomain, getD1ExtraLocationChoices, getDisableConfigWatching, getLocalExplorerEnabledFromEnv, getLocalObservabilityEnabledFromEnv, getNoSkillsUpdatePromptsFromEnv, getOpenNextDeployFromEnv, getOutputFileDirectoryFromEnv, getOutputFilePathFromEnv, getRegistryPath, getSanitizeLogs, getSubdomainMixedStateCheckDisabled, getTraceHeader, getWorkersCIBranchName, getWranglerCacheDirFromEnv, getWranglerHideBanner, getWranglerSendErrorReportsFromEnv, getWranglerSendMetricsFromEnv, isDoNotTrackEnabled } from './chunk-FR75DWDU.mjs';
@@ -5659,6 +5659,13 @@ var validateAssetsConfig = /* @__PURE__ */ __name((diagnostics, field, value) =>
5659
5659
  "string",
5660
5660
  ["single-page-application", "404-page", "none"]
5661
5661
  ) && isValid;
5662
+ isValid = validateOptionalProperty(
5663
+ diagnostics,
5664
+ field,
5665
+ "base_path",
5666
+ value.base_path,
5667
+ "string"
5668
+ ) && isValid;
5662
5669
  if (value.run_worker_first !== void 0) {
5663
5670
  if (typeof value.run_worker_first === "boolean") {
5664
5671
  isValid = validateOptionalProperty(
@@ -5689,6 +5696,7 @@ var validateAssetsConfig = /* @__PURE__ */ __name((diagnostics, field, value) =>
5689
5696
  "binding",
5690
5697
  "html_handling",
5691
5698
  "not_found_handling",
5699
+ "base_path",
5692
5700
  "run_worker_first"
5693
5701
  ]) && isValid;
5694
5702
  return isValid;
@@ -10118,7 +10126,7 @@ function mapWorkerMetadataBindings(bindings) {
10118
10126
  __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
10119
10127
 
10120
10128
  // src/default-compat-date.ts
10121
- var DEFAULT_COMPAT_DATE = "2026-10-01";
10129
+ var DEFAULT_COMPAT_DATE = "2026-10-06";
10122
10130
 
10123
10131
  // src/construct-wrangler-config.ts
10124
10132
  function constructWranglerConfig(config) {
@@ -12889,10 +12897,25 @@ function startTunnel(options) {
12889
12897
  const reminderIntervalMs = options.reminderIntervalMs ?? DEFAULT_TUNNEL_REMINDER_INTERVAL_MS;
12890
12898
  const defaultExpiryMs = options.expiryMs ?? DEFAULT_TUNNEL_EXPIRY_MS;
12891
12899
  const isNamedTunnel = options.token !== void 0;
12900
+ if (isNamedTunnel && (options.allowedMail?.length ?? 0) > 0) {
12901
+ throw new UserError(
12902
+ "The `allowedMail` option is only supported for Quick Tunnels.",
12903
+ { telemetryMessage: "tunnel allowed mail named tunnel conflict" }
12904
+ );
12905
+ }
12892
12906
  const timeFormatter = new Intl.DateTimeFormat(void 0, {
12893
12907
  timeStyle: "short"
12894
12908
  });
12895
- const cloudflaredArgs = isNamedTunnel ? ["tunnel", "--no-autoupdate", "run"] : ["tunnel", "--no-autoupdate", "--url", options.origin.href];
12909
+ const cloudflaredArgs = isNamedTunnel ? ["tunnel", "--no-autoupdate", "run"] : [
12910
+ "tunnel",
12911
+ "--no-autoupdate",
12912
+ "--url",
12913
+ options.origin.href,
12914
+ ...(options.allowedMail ?? []).flatMap((allowedMail) => [
12915
+ "--allowed-mail",
12916
+ allowedMail
12917
+ ])
12918
+ ];
12896
12919
  const cloudflaredPromise = spawnCloudflared(cloudflaredArgs, {
12897
12920
  stdio: "pipe",
12898
12921
  env: options.token ? { TUNNEL_TOKEN: options.token } : void 0,