@cloudflare/workers-utils 0.42.0 → 0.44.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.
Files changed (32) hide show
  1. package/dist/browser.d.mts +2363 -3
  2. package/dist/browser.mjs +469 -2
  3. package/dist/{chunk-C6O4ION7.mjs → chunk-2Q77CKVU.mjs} +3 -1
  4. package/dist/{chunk-Z62CVNHJ.mjs → chunk-6G6FCMPX.mjs} +4 -1
  5. package/dist/{chunk-XNN5XXU4.mjs → chunk-AUSY7DKT.mjs} +13 -5
  6. package/dist/{chunk-IYSONYTF.mjs → chunk-FR75DWDU.mjs} +7 -5
  7. package/dist/{chunk-MCNIGVAF.mjs → chunk-M3RITKR3.mjs} +4 -1
  8. package/dist/{chunk-53IMCORZ.mjs → chunk-MIA26B4M.mjs} +3 -1
  9. package/dist/{chunk-34VZWBGB.mjs → chunk-MV2OJK3L.mjs} +4 -2
  10. package/dist/{chunk-WO2IAW6M.mjs → chunk-OWPFSLY6.mjs} +4 -1
  11. package/dist/{chunk-OWXQB7GP.mjs → chunk-PWC7WAOU.mjs} +4 -1
  12. package/dist/{chunk-3IYLA2JH.mjs → chunk-QSRIB43D.mjs} +5 -2
  13. package/dist/{chunk-Q72B4Q5Z.mjs → chunk-U6NEESU5.mjs} +6 -3
  14. package/dist/compatibility-date.mjs +5 -2
  15. package/dist/{compliance-DzwHmPKm.d.mts → compliance-CZ8Ownqu.d.mts} +534 -509
  16. package/dist/compliance.d.mts +1 -1
  17. package/dist/compliance.mjs +10 -7
  18. package/dist/docker-path.mjs +6 -3
  19. package/dist/errors.mjs +5 -2
  20. package/dist/fs-helpers.mjs +5 -2
  21. package/dist/global-wrangler-config-path.mjs +6 -3
  22. package/dist/index.d.mts +58 -6
  23. package/dist/index.mjs +584 -38
  24. package/dist/local-env.mjs +4 -1
  25. package/dist/metafile-esm.json +1 -1
  26. package/dist/{open-PBXRGS4R.mjs → open-PCXX3ZDZ.mjs} +3 -1
  27. package/dist/prometheus-metrics.mjs +5 -2
  28. package/dist/test-helpers/index.d.mts +1 -1
  29. package/dist/test-helpers/index.mjs +8 -5
  30. package/dist/zod-format.mjs +5 -2
  31. package/package.json +1 -1
  32. package/dist/chunk-DKSA7K25.mjs +0 -468
package/dist/index.mjs CHANGED
@@ -1,22 +1,21 @@
1
- export { MetricsRegistry } from './chunk-Z62CVNHJ.mjs';
2
- import { external_exports } from './chunk-OWXQB7GP.mjs';
3
- export { formatZodError } from './chunk-OWXQB7GP.mjs';
4
- import { isRedirectedRawConfig, configFileName, formatConfigSnippet, partitionExports, getDurableObjectExports, getContainerNameToClassNameMap, parsePackageJSON, readFileSync, ParseError, parseJSON, APIError, dir, parseTOML, modify, applyEdits, format, stringify, parseJSONC } from './chunk-XNN5XXU4.mjs';
5
- 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, isRedirectedConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, partitionExports, readFileSync, readFileSyncToBuffer, resolveContainerClassName, resolveWranglerConfigPath, searchLocation, validateDurableObjectContainerApplications } from './chunk-XNN5XXU4.mjs';
6
- import { assertNever } from './chunk-DKSA7K25.mjs';
7
- export { DEFAULT_COMPAT_DATE, assertNever, constructWranglerConfig, mapWorkerMetadataBindings } from './chunk-DKSA7K25.mjs';
8
- export { NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags } from './chunk-C6O4ION7.mjs';
9
- import { getCloudflareEnv, getCloudflareContainerRegistry, getCloudflareApiBaseUrl, getTraceHeader, getCloudflaredPathFromEnv, getOutputFilePathFromEnv, getOutputFileDirectoryFromEnv, getCIOverrideName, getWranglerCacheDirFromEnv } from './chunk-IYSONYTF.mjs';
10
- 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-IYSONYTF.mjs';
11
- import { dedent } from './chunk-MCNIGVAF.mjs';
12
- export { getBooleanEnvironmentVariableFactory, getDockerPath, getEnvironmentVariableFactory } from './chunk-3IYLA2JH.mjs';
13
- import { UserError, FatalError } from './chunk-WO2IAW6M.mjs';
14
- export { CommandLineArgsError, DeprecationError, FatalError, JsonFriendlyFatalError, MissingConfigError, UserError, createFatalError } from './chunk-WO2IAW6M.mjs';
15
- import { getGlobalConfigPath } from './chunk-34VZWBGB.mjs';
16
- export { getGlobalConfigPath, getGlobalWranglerCachePath } from './chunk-34VZWBGB.mjs';
17
- import { isDirectory, removeDirSync } from './chunk-53IMCORZ.mjs';
18
- export { isDirectory, removeDir, removeDirSync } from './chunk-53IMCORZ.mjs';
19
- import { __commonJS, __name, __require, __toESM } from './chunk-Q72B4Q5Z.mjs';
1
+ import { createRequire } from 'node:module';
2
+ export { MetricsRegistry } from './chunk-6G6FCMPX.mjs';
3
+ import { external_exports } from './chunk-PWC7WAOU.mjs';
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';
7
+ export { NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags } from './chunk-2Q77CKVU.mjs';
8
+ import { getCloudflareEnv, getCloudflareContainerRegistry, getCloudflareApiBaseUrl, getTraceHeader, getCloudflaredPathFromEnv, getOutputFilePathFromEnv, getOutputFileDirectoryFromEnv, getCIOverrideName, getWranglerCacheDirFromEnv } from './chunk-FR75DWDU.mjs';
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';
10
+ import { dedent } from './chunk-M3RITKR3.mjs';
11
+ export { getBooleanEnvironmentVariableFactory, getDockerPath, getEnvironmentVariableFactory } from './chunk-QSRIB43D.mjs';
12
+ import { UserError, FatalError } from './chunk-OWPFSLY6.mjs';
13
+ export { CommandLineArgsError, DeprecationError, FatalError, JsonFriendlyFatalError, MissingConfigError, UserError, createFatalError } from './chunk-OWPFSLY6.mjs';
14
+ import { getGlobalConfigPath } from './chunk-MV2OJK3L.mjs';
15
+ export { getGlobalConfigPath, getGlobalWranglerCachePath } from './chunk-MV2OJK3L.mjs';
16
+ import { isDirectory, removeDirSync } from './chunk-MIA26B4M.mjs';
17
+ export { isDirectory, removeDir, removeDirSync } from './chunk-MIA26B4M.mjs';
18
+ import { __commonJS, __name, __require, __toESM } from './chunk-U6NEESU5.mjs';
20
19
  import fs2, { statSync, accessSync, constants, writeFileSync, renameSync, existsSync, unlinkSync, mkdirSync, chmodSync, readFileSync as readFileSync$1, appendFileSync } from 'node:fs';
21
20
  import assert from 'node:assert';
22
21
  import * as path from 'node:path';
@@ -31,6 +30,8 @@ import { arch } from 'node:os';
31
30
  import * as timersPromises from 'node:timers/promises';
32
31
  import { setTimeout as setTimeout$1 } from 'node:timers/promises';
33
32
 
33
+ createRequire(import.meta.url || (typeof __filename === "string" ? __filename : "/"));
34
+
34
35
  // ../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json
35
36
  var require_vendors = __commonJS({
36
37
  "../../node_modules/.pnpm/ci-info@4.4.0/node_modules/ci-info/vendors.json"(exports$1, module) {
@@ -4214,18 +4215,22 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
4214
4215
  validateDefines(envName),
4215
4216
  {}
4216
4217
  ),
4217
- durable_objects: notInheritable(
4218
- diagnostics,
4219
- topLevelEnv,
4220
- rawConfig,
4221
- rawEnv,
4222
- envName,
4223
- "durable_objects",
4224
- validateBindingsProperty(envName, validateDurableObjectBinding),
4225
- {
4226
- bindings: []
4227
- }
4228
- ),
4218
+ durable_objects: (() => {
4219
+ const durableObjects = notInheritable(
4220
+ diagnostics,
4221
+ topLevelEnv,
4222
+ rawConfig,
4223
+ rawEnv,
4224
+ envName,
4225
+ "durable_objects",
4226
+ validateDurableObjectsProperty(envName, true),
4227
+ { bindings: [] }
4228
+ );
4229
+ return {
4230
+ ...durableObjects,
4231
+ bindings: durableObjects.bindings ?? []
4232
+ };
4233
+ })(),
4229
4234
  workflows: notInheritable(
4230
4235
  diagnostics,
4231
4236
  topLevelEnv,
@@ -5106,6 +5111,85 @@ Please add a binding for each to "${fieldPath}.bindings":
5106
5111
  }
5107
5112
  return isValid;
5108
5113
  }, "validateBindingsProperty");
5114
+ var DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS = 24 * 60 * 60;
5115
+ var MILLISECOND_PRECISION_TOLERANCE = 1e-6;
5116
+ var validateDurableObjectsProperty = /* @__PURE__ */ __name((envName, allowMissingBindings = false, allowCodeUpdateStrategy = true) => (diagnostics, field, value, config) => {
5117
+ const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`;
5118
+ if (value === void 0) {
5119
+ return true;
5120
+ }
5121
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
5122
+ diagnostics.errors.push(
5123
+ `The field "${fieldPath}" should be an object but got ${JSON.stringify(value)}.`
5124
+ );
5125
+ return false;
5126
+ }
5127
+ validateAdditionalProperties(
5128
+ diagnostics,
5129
+ fieldPath,
5130
+ Object.keys(value),
5131
+ allowCodeUpdateStrategy ? ["bindings", "code_update_strategy"] : ["bindings"]
5132
+ );
5133
+ const bindingsContainer = allowMissingBindings && !hasProperty(value, "bindings") ? { ...value, bindings: [] } : value;
5134
+ let isValid = validateBindingsProperty(
5135
+ envName,
5136
+ validateDurableObjectBinding
5137
+ )(diagnostics, field, bindingsContainer, config);
5138
+ if (!allowCodeUpdateStrategy) {
5139
+ return isValid;
5140
+ }
5141
+ if (!hasProperty(value, "code_update_strategy") || value.code_update_strategy === void 0) {
5142
+ return isValid;
5143
+ }
5144
+ const strategy = value.code_update_strategy;
5145
+ const strategyPath = `${fieldPath}.code_update_strategy`;
5146
+ if (typeof strategy !== "object" || strategy === null || Array.isArray(strategy)) {
5147
+ diagnostics.errors.push(
5148
+ `The field "${strategyPath}" should be an object but got ${JSON.stringify(strategy)}.`
5149
+ );
5150
+ return false;
5151
+ }
5152
+ validateAdditionalProperties(
5153
+ diagnostics,
5154
+ strategyPath,
5155
+ Object.keys(strategy),
5156
+ ["mode", "max_delay"]
5157
+ );
5158
+ isValid = validateRequiredProperty(
5159
+ diagnostics,
5160
+ strategyPath,
5161
+ "mode",
5162
+ hasProperty(strategy, "mode") ? strategy.mode : void 0,
5163
+ "string",
5164
+ ["immediate", "deferred"]
5165
+ ) && isValid;
5166
+ const maxDelay = hasProperty(strategy, "max_delay") ? strategy.max_delay : void 0;
5167
+ const maxDelayHasValidType = validateOptionalProperty(
5168
+ diagnostics,
5169
+ strategyPath,
5170
+ "max_delay",
5171
+ maxDelay,
5172
+ "number"
5173
+ );
5174
+ isValid = maxDelayHasValidType && isValid;
5175
+ if (maxDelayHasValidType && typeof maxDelay === "number" && (!Number.isFinite(maxDelay) || maxDelay < 0 || maxDelay > DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS)) {
5176
+ diagnostics.errors.push(
5177
+ `Expected "${strategyPath}.max_delay" to be between 0 and ${DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS} seconds but got ${JSON.stringify(maxDelay)}.`
5178
+ );
5179
+ isValid = false;
5180
+ }
5181
+ if (maxDelayHasValidType && typeof maxDelay === "number" && Number.isFinite(maxDelay) && maxDelay >= 0 && maxDelay <= DURABLE_OBJECTS_CODE_UPDATE_MAX_DELAY_SECONDS) {
5182
+ const milliseconds = maxDelay * 1e3;
5183
+ const roundedMilliseconds = Math.round(milliseconds);
5184
+ if (maxDelay > 0 && roundedMilliseconds === 0 || Math.abs(milliseconds - roundedMilliseconds) > MILLISECOND_PRECISION_TOLERANCE) {
5185
+ diagnostics.errors.push(
5186
+ `Expected "${strategyPath}.max_delay" to use millisecond precision but got ${JSON.stringify(maxDelay)}.`
5187
+ );
5188
+ isValid = false;
5189
+ }
5190
+ }
5191
+ return isValid;
5192
+ }, "validateDurableObjectsProperty");
5109
5193
  var validateUnsafeSettings = /* @__PURE__ */ __name((envName) => (diagnostics, field, value, config) => {
5110
5194
  const fieldPath = config === void 0 ? `${field}` : `env.${envName}.${field}`;
5111
5195
  if (typeof value !== "object" || value === null || Array.isArray(value)) {
@@ -7955,7 +8039,7 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
7955
8039
  previews,
7956
8040
  `${field}.placement`
7957
8041
  );
7958
- isValid = validateBindingsProperty(envName, validateDurableObjectBinding)(
8042
+ isValid = validateDurableObjectsProperty(envName, false, false)(
7959
8043
  diagnostics,
7960
8044
  `${field}.durable_objects`,
7961
8045
  previews.durable_objects,
@@ -8965,8 +9049,7 @@ function warnIfDurableObjectsHaveNoLifecycleConfig(diagnostics, durableObjects,
8965
9049
  if (entry === void 0 || entry.type !== "durable-object") {
8966
9050
  return false;
8967
9051
  }
8968
- const state = entry.state ?? "created";
8969
- return state === "created" || state === "expecting-transfer";
9052
+ return isLiveDurableObjectExport(entry);
8970
9053
  }, "exportsCovers");
8971
9054
  const uncoveredByExports = exportedDurableObjects.filter(
8972
9055
  (binding) => typeof binding.class_name !== "string" || !exportsCovers(binding.class_name)
@@ -9214,6 +9297,11 @@ function isDockerfile(imagePath, configPath) {
9214
9297
  }
9215
9298
  __name(isDockerfile, "isDockerfile");
9216
9299
 
9300
+ // src/assert-never.ts
9301
+ function assertNever(_value) {
9302
+ }
9303
+ __name(assertNever, "assertNever");
9304
+
9217
9305
  // src/config/binding-local-support.ts
9218
9306
  var BINDING_LOCAL_SUPPORT = {
9219
9307
  plain_text: "local-only",
@@ -9312,8 +9400,6 @@ function validateBindingRemoteSetting(type, remote, warn) {
9312
9400
  );
9313
9401
  }
9314
9402
  return;
9315
- default:
9316
- assertNever(support);
9317
9403
  }
9318
9404
  }
9319
9405
  __name(validateBindingRemoteSetting, "validateBindingRemoteSetting");
@@ -9534,6 +9620,466 @@ function findFileUp(name, startDir, lastDir) {
9534
9620
  }
9535
9621
  __name(findFileUp, "findFileUp");
9536
9622
 
9623
+ // src/map-worker-metadata-bindings.ts
9624
+ function mapWorkerMetadataBindings(bindings) {
9625
+ return bindings.filter((binding) => binding.type !== "secret_text").reduce((configObj, binding) => {
9626
+ switch (binding.type) {
9627
+ case "plain_text":
9628
+ {
9629
+ configObj.vars = {
9630
+ ...configObj.vars ?? {},
9631
+ [binding.name]: binding.text
9632
+ };
9633
+ }
9634
+ break;
9635
+ case "json":
9636
+ {
9637
+ configObj.vars = {
9638
+ ...configObj.vars ?? {},
9639
+ [binding.name]: binding.json
9640
+ };
9641
+ }
9642
+ break;
9643
+ case "kv_namespace":
9644
+ {
9645
+ configObj.kv_namespaces = [
9646
+ ...configObj.kv_namespaces ?? [],
9647
+ { id: binding.namespace_id, binding: binding.name }
9648
+ ];
9649
+ }
9650
+ break;
9651
+ case "durable_object_namespace":
9652
+ {
9653
+ configObj.durable_objects = {
9654
+ bindings: [
9655
+ ...configObj.durable_objects?.bindings ?? [],
9656
+ {
9657
+ name: binding.name,
9658
+ class_name: binding.class_name,
9659
+ script_name: binding.script_name,
9660
+ environment: binding.environment
9661
+ }
9662
+ ]
9663
+ };
9664
+ }
9665
+ break;
9666
+ case "d1":
9667
+ {
9668
+ configObj.d1_databases = [
9669
+ ...configObj.d1_databases ?? [],
9670
+ {
9671
+ binding: binding.name,
9672
+ database_id: binding.id
9673
+ }
9674
+ ];
9675
+ }
9676
+ break;
9677
+ case "browser":
9678
+ {
9679
+ configObj.browser = {
9680
+ binding: binding.name
9681
+ };
9682
+ }
9683
+ break;
9684
+ case "ai":
9685
+ {
9686
+ configObj.ai = {
9687
+ binding: binding.name
9688
+ };
9689
+ }
9690
+ break;
9691
+ case "images":
9692
+ {
9693
+ configObj.images = {
9694
+ binding: binding.name
9695
+ };
9696
+ }
9697
+ break;
9698
+ case "stream":
9699
+ {
9700
+ configObj.stream = {
9701
+ binding: binding.name
9702
+ };
9703
+ }
9704
+ break;
9705
+ case "media":
9706
+ {
9707
+ configObj.media = {
9708
+ binding: binding.name
9709
+ };
9710
+ }
9711
+ break;
9712
+ case "r2_bucket":
9713
+ {
9714
+ configObj.r2_buckets = [
9715
+ ...configObj.r2_buckets ?? [],
9716
+ {
9717
+ binding: binding.name,
9718
+ bucket_name: binding.bucket_name,
9719
+ jurisdiction: binding.jurisdiction
9720
+ }
9721
+ ];
9722
+ }
9723
+ break;
9724
+ case "secrets_store_secret":
9725
+ {
9726
+ configObj.secrets_store_secrets = [
9727
+ ...configObj.secrets_store_secrets ?? [],
9728
+ {
9729
+ binding: binding.name,
9730
+ store_id: binding.store_id,
9731
+ secret_name: binding.secret_name
9732
+ }
9733
+ ];
9734
+ }
9735
+ break;
9736
+ case "artifacts":
9737
+ {
9738
+ configObj.artifacts = [
9739
+ ...configObj.artifacts ?? [],
9740
+ {
9741
+ binding: binding.name,
9742
+ namespace: binding.namespace
9743
+ }
9744
+ ];
9745
+ }
9746
+ break;
9747
+ case "unsafe_hello_world": {
9748
+ configObj.unsafe_hello_world = [
9749
+ ...configObj.unsafe_hello_world ?? [],
9750
+ {
9751
+ binding: binding.name,
9752
+ enable_timer: binding.enable_timer
9753
+ }
9754
+ ];
9755
+ break;
9756
+ }
9757
+ case "flagship": {
9758
+ configObj.flagship = [
9759
+ ...configObj.flagship ?? [],
9760
+ {
9761
+ binding: binding.name,
9762
+ app_id: binding.app_id
9763
+ }
9764
+ ];
9765
+ break;
9766
+ }
9767
+ case "service":
9768
+ {
9769
+ configObj.services = [
9770
+ ...configObj.services ?? [],
9771
+ {
9772
+ binding: binding.name,
9773
+ service: binding.service,
9774
+ environment: binding.environment,
9775
+ entrypoint: binding.entrypoint
9776
+ }
9777
+ ];
9778
+ }
9779
+ break;
9780
+ case "analytics_engine":
9781
+ {
9782
+ configObj.analytics_engine_datasets = [
9783
+ ...configObj.analytics_engine_datasets ?? [],
9784
+ { binding: binding.name, dataset: binding.dataset }
9785
+ ];
9786
+ }
9787
+ break;
9788
+ case "dispatch_namespace":
9789
+ {
9790
+ configObj.dispatch_namespaces = [
9791
+ ...configObj.dispatch_namespaces ?? [],
9792
+ {
9793
+ binding: binding.name,
9794
+ namespace: binding.namespace,
9795
+ ...binding.outbound && {
9796
+ outbound: {
9797
+ service: binding.outbound.worker.service,
9798
+ environment: binding.outbound.worker.environment,
9799
+ parameters: binding.outbound.params?.map((p) => p.name) ?? []
9800
+ }
9801
+ }
9802
+ }
9803
+ ];
9804
+ }
9805
+ break;
9806
+ case "logfwdr":
9807
+ {
9808
+ configObj.logfwdr = {
9809
+ bindings: [
9810
+ ...configObj.logfwdr?.bindings ?? [],
9811
+ { name: binding.name, destination: binding.destination }
9812
+ ]
9813
+ };
9814
+ }
9815
+ break;
9816
+ case "wasm_module":
9817
+ {
9818
+ configObj.wasm_modules = {
9819
+ ...configObj.wasm_modules ?? {},
9820
+ [binding.name]: binding.part
9821
+ };
9822
+ }
9823
+ break;
9824
+ case "text_blob":
9825
+ {
9826
+ configObj.text_blobs = {
9827
+ ...configObj.text_blobs ?? {},
9828
+ [binding.name]: binding.part
9829
+ };
9830
+ }
9831
+ break;
9832
+ case "data_blob":
9833
+ {
9834
+ configObj.data_blobs = {
9835
+ ...configObj.data_blobs ?? {},
9836
+ [binding.name]: binding.part
9837
+ };
9838
+ }
9839
+ break;
9840
+ case "secret_text":
9841
+ break;
9842
+ case "version_metadata": {
9843
+ {
9844
+ configObj.version_metadata = {
9845
+ binding: binding.name
9846
+ };
9847
+ }
9848
+ break;
9849
+ }
9850
+ case "send_email": {
9851
+ configObj.send_email = [
9852
+ ...configObj.send_email ?? [],
9853
+ {
9854
+ name: binding.name,
9855
+ destination_address: binding.destination_address,
9856
+ allowed_destination_addresses: binding.allowed_destination_addresses,
9857
+ allowed_sender_addresses: binding.allowed_sender_addresses
9858
+ }
9859
+ ];
9860
+ break;
9861
+ }
9862
+ case "queue":
9863
+ configObj.queues ??= { producers: [] };
9864
+ configObj.queues.producers = [
9865
+ ...configObj.queues.producers ?? [],
9866
+ {
9867
+ binding: binding.name,
9868
+ queue: binding.queue_name,
9869
+ delivery_delay: binding.delivery_delay
9870
+ }
9871
+ ];
9872
+ break;
9873
+ case "vectorize":
9874
+ configObj.vectorize = [
9875
+ ...configObj.vectorize ?? [],
9876
+ {
9877
+ binding: binding.name,
9878
+ index_name: binding.index_name
9879
+ }
9880
+ ];
9881
+ break;
9882
+ case "ai_search_namespace":
9883
+ configObj.ai_search_namespaces = [
9884
+ ...configObj.ai_search_namespaces ?? [],
9885
+ {
9886
+ binding: binding.name,
9887
+ namespace: binding.namespace
9888
+ }
9889
+ ];
9890
+ break;
9891
+ case "ai_search":
9892
+ configObj.ai_search = [
9893
+ ...configObj.ai_search ?? [],
9894
+ {
9895
+ binding: binding.name,
9896
+ instance_name: binding.instance_name
9897
+ }
9898
+ ];
9899
+ break;
9900
+ case "agent_memory": {
9901
+ configObj.agent_memory = [
9902
+ ...configObj.agent_memory ?? [],
9903
+ {
9904
+ binding: binding.name,
9905
+ namespace: binding.namespace
9906
+ }
9907
+ ];
9908
+ break;
9909
+ }
9910
+ case "hyperdrive":
9911
+ configObj.hyperdrive = [
9912
+ ...configObj.hyperdrive ?? [],
9913
+ {
9914
+ binding: binding.name,
9915
+ id: binding.id
9916
+ }
9917
+ ];
9918
+ break;
9919
+ case "mtls_certificate":
9920
+ configObj.mtls_certificates = [
9921
+ ...configObj.mtls_certificates ?? [],
9922
+ {
9923
+ binding: binding.name,
9924
+ certificate_id: binding.certificate_id
9925
+ }
9926
+ ];
9927
+ break;
9928
+ case "pipelines":
9929
+ configObj.pipelines = [
9930
+ ...configObj.pipelines ?? [],
9931
+ {
9932
+ binding: binding.name,
9933
+ // NOTE: stream is the primary field, but we also support pipeline for backward compatibility
9934
+ ...binding.stream && { stream: binding.stream },
9935
+ ...binding.pipeline && { pipeline: binding.pipeline }
9936
+ }
9937
+ ];
9938
+ break;
9939
+ case "assets":
9940
+ configObj.assets = {
9941
+ binding: binding.name
9942
+ // Note: we currently don't get all the assets information from the
9943
+ // API, so here we are only able to set the name of the binding
9944
+ // hopefully in the future we can properly fully support the binding
9945
+ };
9946
+ break;
9947
+ case "inherit":
9948
+ configObj.unsafe = {
9949
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
9950
+ metadata: configObj.unsafe?.metadata ?? void 0
9951
+ };
9952
+ break;
9953
+ case "workflow":
9954
+ {
9955
+ configObj.workflows = [
9956
+ ...configObj.workflows ?? [],
9957
+ {
9958
+ binding: binding.name,
9959
+ name: binding.workflow_name,
9960
+ class_name: binding.class_name,
9961
+ script_name: binding.script_name
9962
+ }
9963
+ ];
9964
+ }
9965
+ break;
9966
+ case "worker_loader":
9967
+ {
9968
+ configObj.worker_loaders = [
9969
+ ...configObj.worker_loaders ?? [],
9970
+ {
9971
+ binding: binding.name
9972
+ }
9973
+ ];
9974
+ }
9975
+ break;
9976
+ case "ratelimit":
9977
+ {
9978
+ configObj.ratelimits = [
9979
+ ...configObj.ratelimits ?? [],
9980
+ {
9981
+ name: binding.name,
9982
+ namespace_id: binding.namespace_id,
9983
+ simple: {
9984
+ limit: binding.simple.limit,
9985
+ period: binding.simple.period
9986
+ }
9987
+ }
9988
+ ];
9989
+ }
9990
+ break;
9991
+ case "vpc_service":
9992
+ {
9993
+ configObj.vpc_services = [
9994
+ ...configObj.vpc_services ?? [],
9995
+ {
9996
+ binding: binding.name,
9997
+ service_id: binding.service_id
9998
+ }
9999
+ ];
10000
+ }
10001
+ break;
10002
+ case "vpc_network":
10003
+ {
10004
+ if (binding.tunnel_id !== void 0) {
10005
+ configObj.vpc_networks = [
10006
+ ...configObj.vpc_networks ?? [],
10007
+ { binding: binding.name, tunnel_id: binding.tunnel_id }
10008
+ ];
10009
+ } else if (binding.network_id !== void 0) {
10010
+ configObj.vpc_networks = [
10011
+ ...configObj.vpc_networks ?? [],
10012
+ { binding: binding.name, network_id: binding.network_id }
10013
+ ];
10014
+ }
10015
+ }
10016
+ break;
10017
+ default: {
10018
+ configObj.unsafe = {
10019
+ bindings: [...configObj.unsafe?.bindings ?? [], binding],
10020
+ metadata: configObj.unsafe?.metadata ?? void 0
10021
+ };
10022
+ }
10023
+ }
10024
+ return configObj;
10025
+ }, {});
10026
+ }
10027
+ __name(mapWorkerMetadataBindings, "mapWorkerMetadataBindings");
10028
+
10029
+ // src/default-compat-date.ts
10030
+ var DEFAULT_COMPAT_DATE = "2026-09-25";
10031
+
10032
+ // src/construct-wrangler-config.ts
10033
+ function constructWranglerConfig(config) {
10034
+ const mappedBindings = mapWorkerMetadataBindings(config.bindings);
10035
+ const durableObjectClassNames = config.bindings.filter(
10036
+ (binding) => binding.type === "durable_object_namespace" && binding.script_name === config.name
10037
+ ).map(
10038
+ (durableObject) => durableObject.class_name
10039
+ );
10040
+ const allRoutes = [
10041
+ ...config.routes.map((r2) => ({
10042
+ pattern: r2.pattern,
10043
+ zone_name: r2.zone_name
10044
+ })),
10045
+ ...config.domains.map((c) => ({
10046
+ pattern: c.hostname,
10047
+ zone_name: c.zone_name,
10048
+ custom_domain: true,
10049
+ enabled: c.enabled,
10050
+ previews_enabled: c.previews_enabled
10051
+ }))
10052
+ ];
10053
+ return {
10054
+ name: config.name,
10055
+ main: config.entrypoint,
10056
+ workers_dev: config.subdomain.enabled,
10057
+ preview_urls: config.subdomain.previews_enabled,
10058
+ compatibility_date: config.compatibility_date ?? DEFAULT_COMPAT_DATE,
10059
+ compatibility_flags: config.compatibility_flags,
10060
+ ...allRoutes.length ? { routes: allRoutes } : {},
10061
+ placement: config.placement?.mode === "smart" ? { mode: "smart" } : void 0,
10062
+ limits: config.limits,
10063
+ ...durableObjectClassNames.length && config.migration_tag ? {
10064
+ migrations: [
10065
+ {
10066
+ tag: config.migration_tag,
10067
+ new_classes: durableObjectClassNames
10068
+ }
10069
+ ]
10070
+ } : {},
10071
+ ...config.schedules.length ? {
10072
+ triggers: {
10073
+ crons: config.schedules.map((scheduled) => scheduled.cron)
10074
+ }
10075
+ } : {},
10076
+ tail_consumers: config.tail_consumers ?? void 0,
10077
+ observability: config.observability,
10078
+ ...mappedBindings
10079
+ };
10080
+ }
10081
+ __name(constructWranglerConfig, "constructWranglerConfig");
10082
+
9537
10083
  // src/binding-utils.ts
9538
10084
  function assertNever2(_value) {
9539
10085
  }
@@ -12453,7 +12999,7 @@ var LOGGER_LEVELS = {
12453
12999
  // src/open-in-browser.ts
12454
13000
  async function openInBrowser(url, logger) {
12455
13001
  try {
12456
- const { default: open } = await import('./open-PBXRGS4R.mjs');
13002
+ const { default: open } = await import('./open-PCXX3ZDZ.mjs');
12457
13003
  const childProcess = await open(url);
12458
13004
  childProcess.on("error", (err) => {
12459
13005
  handleBrowserOpenError(url, err, logger);
@@ -12860,4 +13406,4 @@ safe-buffer/index.js:
12860
13406
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
12861
13407
  */
12862
13408
 
12863
- export { ARTIFACTS_EVENT_TYPES, BunPackageManager, Diagnostics, LOGGER_LEVELS, NpmPackageManager, NubPackageManager, PatchConfigError, PnpmPackageManager, YarnPackageManager, addAuthorizationHeader, bucketFormatMessage, checkWorkerNameValidity, clearOutputFilePath, compareMigrationPaths, convertConfigToBindings, createConfigCache, defaultWranglerConfig, experimental_patchConfig, extractAccountTag, extractBindingsOfType, extractWAFBlockRayId, fetchInternalBase, fetchKVGetValueBase, fetchLatestNpmVersion, fetchListResultBase, fetchResultBase, formatTime, friendlyBindingNames2 as friendlyBindingNames, getBindingLocalSupport, getBindingTypeFriendlyName, getBindings, getD1MigrationFiles, getHostFromRoute, getHostFromUrl, getInstalledPackageVersion, getPackagePath, getWorkerName, getWorkerNameFromProject, getWranglerHiddenDirPath, getWranglerTmpDir, getZoneFromRoute, hasCursor, hasMorePages, hasProperty, isCI, isDockerfile, isInteractive, isNonInteractiveOrCI, isOptionalProperty, isPackageInstalled, isPagesConfig, isRequiredProperty, isUnsafeBindingType, isValidR2BucketName, isWAFBlockResponse, maybeAddTraceHeader, normalizeAndValidateConfig, normalizeRelativePath, openInBrowser, parseRetryAfterMs, parseRetryAfterValue, performApiFetchBase, printBindings, renderError, resolveNamedTunnel, retryOnAPIFailure, spawnCloudflared, startTunnel, sweepStaleWranglerTmpDirs, throwFetchError, toUrlPath, toValidWorkerName, truncate, validateBindingRemoteSetting, validatePagesConfig, writeOutput };
13409
+ export { ARTIFACTS_EVENT_TYPES, BunPackageManager, DEFAULT_COMPAT_DATE, Diagnostics, LOGGER_LEVELS, NpmPackageManager, NubPackageManager, PatchConfigError, PnpmPackageManager, YarnPackageManager, addAuthorizationHeader, assertNever, bucketFormatMessage, checkWorkerNameValidity, clearOutputFilePath, compareMigrationPaths, constructWranglerConfig, convertConfigToBindings, createConfigCache, defaultWranglerConfig, experimental_patchConfig, extractAccountTag, extractBindingsOfType, extractWAFBlockRayId, fetchInternalBase, fetchKVGetValueBase, fetchLatestNpmVersion, fetchListResultBase, fetchResultBase, formatTime, friendlyBindingNames2 as friendlyBindingNames, getBindingLocalSupport, getBindingTypeFriendlyName, getBindings, getD1MigrationFiles, getHostFromRoute, getHostFromUrl, getInstalledPackageVersion, getPackagePath, getWorkerName, getWorkerNameFromProject, getWranglerHiddenDirPath, getWranglerTmpDir, getZoneFromRoute, hasCursor, hasMorePages, hasProperty, isCI, isDockerfile, isInteractive, isNonInteractiveOrCI, isOptionalProperty, isPackageInstalled, isPagesConfig, isRequiredProperty, isUnsafeBindingType, isValidR2BucketName, isWAFBlockResponse, mapWorkerMetadataBindings, maybeAddTraceHeader, normalizeAndValidateConfig, normalizeRelativePath, openInBrowser, parseRetryAfterMs, parseRetryAfterValue, performApiFetchBase, printBindings, renderError, resolveNamedTunnel, retryOnAPIFailure, spawnCloudflared, startTunnel, sweepStaleWranglerTmpDirs, throwFetchError, toUrlPath, toValidWorkerName, truncate, validateBindingRemoteSetting, validatePagesConfig, writeOutput };