@cloudflare/workers-utils 0.38.0 → 0.39.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/browser.d.mts +1 -1
- package/dist/browser.mjs +1 -1
- package/dist/{chunk-S3ANQ67D.mjs → chunk-5H6GBNUC.mjs} +1 -8
- package/dist/{chunk-IQDQ5WRD.mjs → chunk-JGKSDUFK.mjs} +122 -2
- package/dist/{compliance-Dta138UP.d.mts → compliance-yQnxg2l5.d.mts} +15 -29
- package/dist/compliance.d.mts +1 -1
- package/dist/index.d.mts +33 -5
- package/dist/index.mjs +99 -53
- package/dist/metafile-esm.json +1 -1
- package/dist/test-helpers/index.d.mts +1 -1
- package/dist/test-helpers/index.mjs +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { MetricsRegistry } from './chunk-Z62CVNHJ.mjs';
|
|
2
2
|
export { _forceColour, formatZodError } from './chunk-7AX24RFK.mjs';
|
|
3
|
-
import { isRedirectedRawConfig, configFileName, formatConfigSnippet, getDurableObjectExports, getContainerNameToClassNameMap, parsePackageJSON, readFileSync, ParseError, parseJSON, APIError, CONTAINER_IMAGES_BINDING, dir, parseTOML, modify, applyEdits, format, dist_default, parseJSONC } from './chunk-
|
|
4
|
-
export { APIError, CONTAINER_IMAGES_BINDING, ENVIRONMENT_TAG_PREFIX, INHERIT_SYMBOL, JSON_CONFIG_FORMATS, PATH_TO_DEPLOY_CONFIG, ParseError, SERVICE_TAG_PREFIX, configFileName, configFormat, experimental_readRawConfig, findWranglerConfig, formatConfigSnippet, getContainerDurableObjectClassNames, getContainerNameToClassNameMap, getDurableObjectContainerApps, getDurableObjectExports, hasDurableObjectExports, indexLocation, isDurableObjectContainerApp, isRedirectedConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, partitionExports, readFileSync, readFileSyncToBuffer, resolveContainerClassName, resolveWranglerConfigPath, searchLocation } from './chunk-
|
|
5
|
-
import { assertNever } from './chunk-
|
|
6
|
-
export { DEFAULT_COMPAT_DATE, assertNever, constructWranglerConfig, mapWorkerMetadataBindings } from './chunk-
|
|
3
|
+
import { isRedirectedRawConfig, configFileName, formatConfigSnippet, getDurableObjectExports, getContainerNameToClassNameMap, parsePackageJSON, readFileSync, ParseError, parseJSON, APIError, CONTAINER_IMAGES_BINDING, dir, parseTOML, modify, applyEdits, format, dist_default, parseJSONC } from './chunk-JGKSDUFK.mjs';
|
|
4
|
+
export { APIError, CONTAINER_IMAGES_BINDING, 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-JGKSDUFK.mjs';
|
|
5
|
+
import { assertNever } from './chunk-5H6GBNUC.mjs';
|
|
6
|
+
export { DEFAULT_COMPAT_DATE, assertNever, constructWranglerConfig, mapWorkerMetadataBindings } from './chunk-5H6GBNUC.mjs';
|
|
7
7
|
export { NODEJS_COMPAT_DEFAULT_ON_DATE, NODEJS_COMPAT_V2_SWITCH_OVER_DATE, getTodaysCompatDate, isCompatDate, isNodejsCompatDefaultOn, resolveNodejsCompat, stripRedundantNodejsCompatFlags } from './chunk-C6O4ION7.mjs';
|
|
8
8
|
import { getCloudflareEnv, getCloudflareContainerRegistry, getCloudflareApiBaseUrl, getTraceHeader, getCloudflaredPathFromEnv, getOutputFilePathFromEnv, getOutputFileDirectoryFromEnv, getCIOverrideName, getWranglerCacheDirFromEnv } from './chunk-IYSONYTF.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-IYSONYTF.mjs';
|
|
@@ -1692,7 +1692,6 @@ var defaultWranglerConfig = {
|
|
|
1692
1692
|
vectorize: [],
|
|
1693
1693
|
ai_search_namespaces: [],
|
|
1694
1694
|
ai_search: [],
|
|
1695
|
-
websearch: void 0,
|
|
1696
1695
|
agent_memory: [],
|
|
1697
1696
|
hyperdrive: [],
|
|
1698
1697
|
workflows: [],
|
|
@@ -17214,7 +17213,6 @@ var friendlyBindingNames = {
|
|
|
17214
17213
|
vectorize: "Vectorize Index",
|
|
17215
17214
|
ai_search_namespaces: "AI Search Namespace",
|
|
17216
17215
|
ai_search: "AI Search Instance",
|
|
17217
|
-
websearch: "Web Search",
|
|
17218
17216
|
agent_memory: "Agent Memory",
|
|
17219
17217
|
hyperdrive: "Hyperdrive Config",
|
|
17220
17218
|
r2_buckets: "R2 Bucket",
|
|
@@ -17268,7 +17266,6 @@ var bindingTypeFriendlyNames = {
|
|
|
17268
17266
|
vectorize: "Vectorize Index",
|
|
17269
17267
|
ai_search_namespace: "AI Search Namespace",
|
|
17270
17268
|
ai_search: "AI Search Instance",
|
|
17271
|
-
websearch: "Web Search",
|
|
17272
17269
|
agent_memory: "Agent Memory",
|
|
17273
17270
|
hyperdrive: "Hyperdrive Config",
|
|
17274
17271
|
service: "Worker",
|
|
@@ -18543,16 +18540,6 @@ function normalizeAndValidateEnvironment(diagnostics, configPath, rawEnv, isDisp
|
|
|
18543
18540
|
validateBindingArray(envName, validateAISearchBinding),
|
|
18544
18541
|
[]
|
|
18545
18542
|
),
|
|
18546
|
-
websearch: notInheritable(
|
|
18547
|
-
diagnostics,
|
|
18548
|
-
topLevelEnv,
|
|
18549
|
-
rawConfig,
|
|
18550
|
-
rawEnv,
|
|
18551
|
-
envName,
|
|
18552
|
-
"websearch",
|
|
18553
|
-
validateNamedSimpleBinding(envName),
|
|
18554
|
-
void 0
|
|
18555
|
-
),
|
|
18556
18543
|
agent_memory: notInheritable(
|
|
18557
18544
|
diagnostics,
|
|
18558
18545
|
topLevelEnv,
|
|
@@ -19805,7 +19792,6 @@ var validateUnsafeBinding = /* @__PURE__ */ __name((diagnostics, field, value) =
|
|
|
19805
19792
|
"ai",
|
|
19806
19793
|
"ai_search_namespace",
|
|
19807
19794
|
"ai_search",
|
|
19808
|
-
"websearch",
|
|
19809
19795
|
"agent_memory",
|
|
19810
19796
|
"kv_namespace",
|
|
19811
19797
|
"durable_object_namespace",
|
|
@@ -20021,8 +20007,25 @@ function validateDurableObjectContainerImages(diagnostics, field, images, compli
|
|
|
20021
20007
|
valid = false;
|
|
20022
20008
|
}
|
|
20023
20009
|
}
|
|
20010
|
+
const isDockerfileBuild = hasDockerfile && !hasImage;
|
|
20011
|
+
if (isDockerfileBuild) {
|
|
20012
|
+
if (image.build_context !== void 0 && (typeof image.build_context !== "string" || image.build_context.length === 0)) {
|
|
20013
|
+
diagnostics.errors.push(
|
|
20014
|
+
`"${imageField}.build_context" must be a non-empty string.`
|
|
20015
|
+
);
|
|
20016
|
+
valid = false;
|
|
20017
|
+
}
|
|
20018
|
+
if (image.build_vars !== void 0 && (typeof image.build_vars !== "object" || image.build_vars === null || Array.isArray(image.build_vars) || Object.values(image.build_vars).some(
|
|
20019
|
+
(value) => typeof value !== "string"
|
|
20020
|
+
))) {
|
|
20021
|
+
diagnostics.errors.push(
|
|
20022
|
+
`"${imageField}.build_vars" must be an object with string values.`
|
|
20023
|
+
);
|
|
20024
|
+
valid = false;
|
|
20025
|
+
}
|
|
20026
|
+
}
|
|
20024
20027
|
const unsupportedFields = Object.keys(image).filter(
|
|
20025
|
-
(property) => property !== "dockerfile" && property !== "image"
|
|
20028
|
+
(property) => property !== "dockerfile" && property !== "image" && !(isDockerfileBuild && (property === "build_context" || property === "build_vars"))
|
|
20026
20029
|
);
|
|
20027
20030
|
if (unsupportedFields.length > 0) {
|
|
20028
20031
|
diagnostics.errors.push(
|
|
@@ -20034,6 +20037,32 @@ function validateDurableObjectContainerImages(diagnostics, field, images, compli
|
|
|
20034
20037
|
return valid;
|
|
20035
20038
|
}
|
|
20036
20039
|
__name(validateDurableObjectContainerImages, "validateDurableObjectContainerImages");
|
|
20040
|
+
function validateDurableObjectContainerUnsafe(diagnostics, field, value) {
|
|
20041
|
+
if (value === void 0) {
|
|
20042
|
+
return;
|
|
20043
|
+
}
|
|
20044
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
20045
|
+
diagnostics.errors.push(`"${field}" should be an object.`);
|
|
20046
|
+
return;
|
|
20047
|
+
}
|
|
20048
|
+
const unsafe = value;
|
|
20049
|
+
const configuration = unsafe.configuration;
|
|
20050
|
+
if (Object.keys(unsafe).some((key) => key !== "configuration") || configuration !== void 0 && (typeof configuration !== "object" || configuration === null || Array.isArray(configuration) || Object.keys(configuration).some((key) => key !== "experimental_flags"))) {
|
|
20051
|
+
diagnostics.errors.push(
|
|
20052
|
+
`Only "${field}.configuration.experimental_flags" is supported for Durable Object-managed Containers.`
|
|
20053
|
+
);
|
|
20054
|
+
return;
|
|
20055
|
+
}
|
|
20056
|
+
if (configuration !== void 0) {
|
|
20057
|
+
const flags = configuration.experimental_flags;
|
|
20058
|
+
if (flags !== void 0 && (!Array.isArray(flags) || flags.some((flag) => typeof flag !== "string"))) {
|
|
20059
|
+
diagnostics.errors.push(
|
|
20060
|
+
`"${field}.configuration.experimental_flags" should be an array of strings.`
|
|
20061
|
+
);
|
|
20062
|
+
}
|
|
20063
|
+
}
|
|
20064
|
+
}
|
|
20065
|
+
__name(validateDurableObjectContainerUnsafe, "validateDurableObjectContainerUnsafe");
|
|
20037
20066
|
function validateContainerApp(envName, topLevelName, configPath, options = {}) {
|
|
20038
20067
|
const { generateDefaultName = true } = options;
|
|
20039
20068
|
return (diagnostics, field, value, config2) => {
|
|
@@ -20049,19 +20078,16 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
|
|
|
20049
20078
|
for (const containerAppOptional of value) {
|
|
20050
20079
|
const isDurableObjectManaged = containerAppOptional.scheduling_policy === "durable_object";
|
|
20051
20080
|
const hasValidDurableObjectClassName = typeof containerAppOptional.class_name === "string" && containerAppOptional.class_name.length > 0;
|
|
20052
|
-
|
|
20053
|
-
|
|
20054
|
-
|
|
20055
|
-
|
|
20056
|
-
|
|
20057
|
-
|
|
20058
|
-
|
|
20059
|
-
|
|
20060
|
-
|
|
20061
|
-
|
|
20062
|
-
"class_name",
|
|
20063
|
-
containerAppOptional.class_name,
|
|
20064
|
-
"string"
|
|
20081
|
+
validateOptionalProperty(
|
|
20082
|
+
diagnostics,
|
|
20083
|
+
field,
|
|
20084
|
+
"class_name",
|
|
20085
|
+
containerAppOptional.class_name,
|
|
20086
|
+
"string"
|
|
20087
|
+
);
|
|
20088
|
+
if (isDurableObjectManaged && containerAppOptional.class_name === "") {
|
|
20089
|
+
diagnostics.errors.push(
|
|
20090
|
+
`"containers.class_name" must be a non-empty string when specified for a Durable Object-managed Container.`
|
|
20065
20091
|
);
|
|
20066
20092
|
}
|
|
20067
20093
|
validateOptionalProperty(
|
|
@@ -20071,7 +20097,7 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
|
|
|
20071
20097
|
containerAppOptional.name,
|
|
20072
20098
|
"string"
|
|
20073
20099
|
);
|
|
20074
|
-
if (generateDefaultName && !containerAppOptional.name && (!isDurableObjectManaged || hasValidDurableObjectClassName)) {
|
|
20100
|
+
if (generateDefaultName && !containerAppOptional.name && (!isDurableObjectManaged || containerAppOptional.class_name === void 0 || hasValidDurableObjectClassName)) {
|
|
20075
20101
|
if (containerAppOptional.class_name === void 0) {
|
|
20076
20102
|
diagnostics.errors.push(
|
|
20077
20103
|
`"containers.name" is required when "containers.class_name" is not defined, because there is no class name to derive a default name from. Either name this container and reference it from a Durable Object's \`exports\` entry, or set "containers.class_name".`
|
|
@@ -20093,12 +20119,35 @@ function validateContainerApp(envName, topLevelName, configPath, options = {}) {
|
|
|
20093
20119
|
containerAppOptional.images,
|
|
20094
20120
|
options.complianceConfig
|
|
20095
20121
|
);
|
|
20122
|
+
validateContainerObservability(
|
|
20123
|
+
diagnostics,
|
|
20124
|
+
`${field}.observability`,
|
|
20125
|
+
containerAppOptional.observability,
|
|
20126
|
+
config2
|
|
20127
|
+
);
|
|
20128
|
+
if (containerAppOptional.observability?.target_instance_count !== void 0 || containerAppOptional.observability?.target_instance_percentage !== void 0) {
|
|
20129
|
+
diagnostics.errors.push(
|
|
20130
|
+
`"${field}.observability" only supports enabling or disabling logs for Durable Object-managed Containers; instance targeting is not supported.`
|
|
20131
|
+
);
|
|
20132
|
+
}
|
|
20133
|
+
validateDurableObjectContainerUnsafe(
|
|
20134
|
+
diagnostics,
|
|
20135
|
+
`${field}.unsafe`,
|
|
20136
|
+
containerAppOptional.unsafe
|
|
20137
|
+
);
|
|
20096
20138
|
const unsupportedFields = Object.keys(containerAppOptional).filter(
|
|
20097
|
-
(key) => ![
|
|
20139
|
+
(key) => ![
|
|
20140
|
+
"name",
|
|
20141
|
+
"class_name",
|
|
20142
|
+
"scheduling_policy",
|
|
20143
|
+
"images",
|
|
20144
|
+
"observability",
|
|
20145
|
+
"unsafe"
|
|
20146
|
+
].includes(key)
|
|
20098
20147
|
);
|
|
20099
20148
|
if (unsupportedFields.length > 0) {
|
|
20100
20149
|
diagnostics.errors.push(
|
|
20101
|
-
`Unsupported fields for Durable Object-managed Containers in ${field}: ${unsupportedFields.map((key) => `"${key}"`).join(",")}. Only "name", "class_name", "scheduling_policy", and "
|
|
20150
|
+
`Unsupported fields for Durable Object-managed Containers in ${field}: ${unsupportedFields.map((key) => `"${key}"`).join(",")}. Only "name", "class_name", "scheduling_policy", "images", "observability", and restricted "unsafe" settings are supported.`
|
|
20102
20151
|
);
|
|
20103
20152
|
}
|
|
20104
20153
|
continue;
|
|
@@ -21940,6 +21989,8 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
|
|
|
21940
21989
|
"d1_databases",
|
|
21941
21990
|
"r2_buckets",
|
|
21942
21991
|
"vectorize",
|
|
21992
|
+
"ai_search_namespaces",
|
|
21993
|
+
"ai_search",
|
|
21943
21994
|
"hyperdrive",
|
|
21944
21995
|
"services",
|
|
21945
21996
|
"analytics_engine_datasets",
|
|
@@ -22026,6 +22077,18 @@ var validatePreviewsConfig = /* @__PURE__ */ __name((envName, configPath) => (di
|
|
|
22026
22077
|
previews.vectorize,
|
|
22027
22078
|
void 0
|
|
22028
22079
|
) && isValid;
|
|
22080
|
+
isValid = validateBindingArray(envName, validateAISearchNamespaceBinding)(
|
|
22081
|
+
diagnostics,
|
|
22082
|
+
`${field}.ai_search_namespaces`,
|
|
22083
|
+
previews.ai_search_namespaces,
|
|
22084
|
+
void 0
|
|
22085
|
+
) && isValid;
|
|
22086
|
+
isValid = validateBindingArray(envName, validateAISearchBinding)(
|
|
22087
|
+
diagnostics,
|
|
22088
|
+
`${field}.ai_search`,
|
|
22089
|
+
previews.ai_search,
|
|
22090
|
+
void 0
|
|
22091
|
+
) && isValid;
|
|
22029
22092
|
isValid = validateBindingArray(envName, validateHyperdriveBinding)(
|
|
22030
22093
|
diagnostics,
|
|
22031
22094
|
`${field}.hyperdrive`,
|
|
@@ -23181,7 +23244,6 @@ var BINDING_LOCAL_SUPPORT = {
|
|
|
23181
23244
|
flagship: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
23182
23245
|
vpc_service: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
23183
23246
|
vpc_network: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
23184
|
-
websearch: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator",
|
|
23185
23247
|
agent_memory: "DO-NOT-USE-this-resource-will-never-have-a-local-simulator"
|
|
23186
23248
|
};
|
|
23187
23249
|
function getBindingLocalSupport(type) {
|
|
@@ -23679,11 +23741,6 @@ function convertConfigToBindings(config2, options) {
|
|
|
23679
23741
|
}
|
|
23680
23742
|
break;
|
|
23681
23743
|
}
|
|
23682
|
-
case "websearch": {
|
|
23683
|
-
const { binding, ...x } = info;
|
|
23684
|
-
output[binding] = { type: "websearch", ...x };
|
|
23685
|
-
break;
|
|
23686
|
-
}
|
|
23687
23744
|
case "agent_memory": {
|
|
23688
23745
|
for (const { binding, ...x } of info) {
|
|
23689
23746
|
output[binding] = { type: "agent_memory", ...x };
|
|
@@ -23856,7 +23913,6 @@ function printBindings(bindings, options) {
|
|
|
23856
23913
|
bindings
|
|
23857
23914
|
);
|
|
23858
23915
|
const ai_search = extractBindingsOfType("ai_search", bindings);
|
|
23859
|
-
const websearch = extractBindingsOfType("websearch", bindings);
|
|
23860
23916
|
const agent_memory = extractBindingsOfType("agent_memory", bindings);
|
|
23861
23917
|
const hyperdrive = extractBindingsOfType("hyperdrive", bindings);
|
|
23862
23918
|
const r2_buckets = extractBindingsOfType("r2_bucket", bindings);
|
|
@@ -24074,16 +24130,6 @@ function printBindings(bindings, options) {
|
|
|
24074
24130
|
}))
|
|
24075
24131
|
);
|
|
24076
24132
|
}
|
|
24077
|
-
if (websearch.length > 0) {
|
|
24078
|
-
output.push(
|
|
24079
|
-
...websearch.map(({ binding }) => ({
|
|
24080
|
-
name: binding,
|
|
24081
|
-
type: getBindingTypeFriendlyName("websearch"),
|
|
24082
|
-
value: void 0,
|
|
24083
|
-
mode: getMode({ isSimulatedLocally: false })
|
|
24084
|
-
}))
|
|
24085
|
-
);
|
|
24086
|
-
}
|
|
24087
24133
|
if (agent_memory.length > 0) {
|
|
24088
24134
|
output.push(
|
|
24089
24135
|
...agent_memory.map(({ binding, namespace }) => ({
|
|
@@ -24565,7 +24611,7 @@ ${allTailConsumers.map(({ service, streaming }) => {
|
|
|
24565
24611
|
log(
|
|
24566
24612
|
`${containersTitle}
|
|
24567
24613
|
${containers.map(
|
|
24568
|
-
(container) => container.scheduling_policy === "durable_object" ? `- ${container.class_name} (durable_object)` : `- ${container.name} (${container.image})`
|
|
24614
|
+
(container) => container.scheduling_policy === "durable_object" ? `- ${container.class_name ?? container.name} (durable_object)` : `- ${container.name} (${container.image})`
|
|
24569
24615
|
).join("\n")}`
|
|
24570
24616
|
);
|
|
24571
24617
|
log("");
|