@cloudflare/workers-utils 0.43.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-FLRJ77A6.mjs → chunk-AUSY7DKT.mjs} +6 -3
  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 +45 -6
  23. package/dist/index.mjs +583 -36
  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, isLiveDurableObjectExport, dir, parseTOML, modify, applyEdits, format, stringify, parseJSONC } from './chunk-FLRJ77A6.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, isLiveDurableObjectExport, isRedirectedConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, partitionExports, readFileSync, readFileSyncToBuffer, resolveContainerClassName, resolveWranglerConfigPath, searchLocation, validateDurableObjectContainerApplications } from './chunk-FLRJ77A6.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,
@@ -9213,6 +9297,11 @@ function isDockerfile(imagePath, configPath) {
9213
9297
  }
9214
9298
  __name(isDockerfile, "isDockerfile");
9215
9299
 
9300
+ // src/assert-never.ts
9301
+ function assertNever(_value) {
9302
+ }
9303
+ __name(assertNever, "assertNever");
9304
+
9216
9305
  // src/config/binding-local-support.ts
9217
9306
  var BINDING_LOCAL_SUPPORT = {
9218
9307
  plain_text: "local-only",
@@ -9311,8 +9400,6 @@ function validateBindingRemoteSetting(type, remote, warn) {
9311
9400
  );
9312
9401
  }
9313
9402
  return;
9314
- default:
9315
- assertNever(support);
9316
9403
  }
9317
9404
  }
9318
9405
  __name(validateBindingRemoteSetting, "validateBindingRemoteSetting");
@@ -9533,6 +9620,466 @@ function findFileUp(name, startDir, lastDir) {
9533
9620
  }
9534
9621
  __name(findFileUp, "findFileUp");
9535
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
+
9536
10083
  // src/binding-utils.ts
9537
10084
  function assertNever2(_value) {
9538
10085
  }
@@ -12452,7 +12999,7 @@ var LOGGER_LEVELS = {
12452
12999
  // src/open-in-browser.ts
12453
13000
  async function openInBrowser(url, logger) {
12454
13001
  try {
12455
- const { default: open } = await import('./open-PBXRGS4R.mjs');
13002
+ const { default: open } = await import('./open-PCXX3ZDZ.mjs');
12456
13003
  const childProcess = await open(url);
12457
13004
  childProcess.on("error", (err) => {
12458
13005
  handleBrowserOpenError(url, err, logger);
@@ -12859,4 +13406,4 @@ safe-buffer/index.js:
12859
13406
  (*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
12860
13407
  */
12861
13408
 
12862
- 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 };