@cloudflare/workers-utils 0.23.0 → 0.23.2
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 +3 -1
- package/dist/{config-BT23LDfr.d.mts → config-8UymS5SL.d.mts} +545 -19
- package/dist/index.d.mts +45 -332
- package/dist/index.mjs +103 -13
- package/dist/metafile-esm.json +1 -1
- package/dist/test-helpers/index.d.mts +3 -1
- package/package.json +6 -6
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { C as ComputedFields, B as Binding, R as RawConfig, b as Config, W as WorkerMetadataBinding, c as Route } from './config-
|
|
2
|
-
export {
|
|
1
|
+
import { C as ComputedFields, B as Binding, R as RawConfig, b as Config, W as WorkerMetadataBinding, L as Logger, c as Route } from './config-8UymS5SL.mjs';
|
|
2
|
+
export { bw as ApiCredentials, aA as AssetConfigMetadata, A as Assets, aB as AssetsOptions, aN as AsyncHook, aI as BinaryFile, b0 as COMPLIANCE_REGION_CONFIG_PUBLIC, b1 as COMPLIANCE_REGION_CONFIG_UNKNOWN, t as CacheOptions, K as CfAIBinding, a4 as CfAISearch, a3 as CfAISearchNamespace, aK as CfAccount, a6 as CfAgentMemory, ai as CfAnalyticsEngineDataset, a8 as CfArtifacts, an as CfAssetsBinding, J as CfBrowserBinding, aq as CfCapnp, a1 as CfD1Database, X as CfDataBlobBindings, ae as CfDevPluginCfg, aj as CfDispatchNamespace, Y as CfDurableObject, as as CfDurableObjectMigrations, aa as CfFlagship, a9 as CfHelloWorld, ad as CfHyperdrive, M as CfImagesBinding, F as CfKvNamespace, al as CfLogfwdr, am as CfLogfwdrBinding, ak as CfMTlsCertificate, N as CfMediaBinding, y as CfModule, x as CfModuleType, ao as CfPipeline, at as CfPlacement, $ as CfQueue, a0 as CfR2Bucket, ac as CfRateLimit, w as CfScriptFormat, a7 as CfSecretsStoreSecrets, G as CfSendEmailBindings, af as CfService, Q as CfStreamBinding, au as CfTailConsumer, I as CfTextBlobBindings, ar as CfUnsafe, ap as CfUnsafeBinding, av as CfUserLimits, z as CfVars, a2 as CfVectorize, V as CfVersionMetadataBinding, ah as CfVpcNetwork, ag as CfVpcService, H as CfWasmModuleBindings, a5 as CfWebSearch, ax as CfWorkerContext, aw as CfWorkerInit, ab as CfWorkerLoader, ay as CfWorkerSourceMap, _ as CfWorkflow, l as CloudchamberConfig, a$ as ComplianceConfig, e as ConfigFields, r as ConfigModuleRuleType, m as ContainerApp, v as ContainerEngine, k as CustomDomainRoute, s as DispatchNamespaceOutbound, u as DockerConfiguration, n as DurableObjectBindings, D as DurableObjectMigration, aU as ENVIRONMENT_TAG_PREFIX, aR as Entry, E as Environment, p as EnvironmentNonInheritable, bO as FetchKVGetValueFetcher, bz as FetchListResultFetcher, bA as FetchPagedListResultFetcher, bx as FetchResult, by as FetchResultFetcher, aH as File, aM as Hook, aL as HookValues, aS as INHERIT_SYMBOL, aW as JSON_CONFIG_FORMATS, az as Json, h as LOGGER_LEVELS, aD as LegacyAssetPaths, aO as LogLevel, i as LoggerLevel, aP as NodeJSCompatMode, O as Observability, aV as PATH_TO_DEPLOY_CONFIG, P as PreviewsConfig, d as RawDevConfig, f as RawEnvironment, a as RedirectedRawConfig, q as Rule, aT as SERVICE_TAG_PREFIX, aG as ServiceFetch, aF as ServiceMetadataRes, aQ as StartDevWorkerInput, S as StreamingTailConsumer, T as TailConsumer, aJ as Trigger, U as UserLimits, aC as ValidatedAssetsOptions, aE as WorkerMetadata, o as WorkflowBinding, Z as ZoneIdRoute, j as ZoneNameRoute, bL as addAuthorizationHeader, g as defaultWranglerConfig, bI as extractAccountTag, bH as extractWAFBlockRayId, bC as fetchInternalBase, bN as fetchKVGetValueBase, bE as fetchListResultBase, bD as fetchResultBase, br as getBrowserRenderingHeadfulFromEnv, bd as getBuildConditionsFromEnv, be as getBuildPlatformFromEnv, aX as getC3CommandFromEnv, bb as getCIGeneratePreviewAlias, b8 as getCIMatchTag, b9 as getCIOverrideName, ba as getCIOverrideNetworkModeHost, bs as getCfFetchEnabledFromEnv, bt as getCfFetchPathFromEnv, b3 as getCloudflareApiBaseUrl, a_ as getCloudflareApiEnvironmentFromEnv, b2 as getCloudflareComplianceRegion, bo as getCloudflareEnv, bk as getCloudflareIncludeProcessEnvFromEnv, bj as getCloudflareLoadDevVarsFromDotEnv, bv as getCloudflaredPathFromEnv, b4 as getComplianceRegionSubdomain, bg as getD1ExtraLocationChoices, bm as getDisableConfigWatching, bh as getDockerPath, bq as getLocalExplorerEnabledFromEnv, bp as getOpenNextDeployFromEnv, b6 as getOutputFileDirectoryFromEnv, b7 as getOutputFilePathFromEnv, bf as getRegistryPath, b5 as getSanitizeLogs, bi as getSubdomainMixedStateCheckDisabled, bl as getTraceHeader, bc as getWorkersCIBranchName, bu as getWranglerCacheDirFromEnv, bn as getWranglerHideBanner, aZ as getWranglerSendErrorReportsFromEnv, aY as getWranglerSendMetricsFromEnv, bP as hasCursor, bJ as hasMorePages, bG as isWAFBlockResponse, bQ as maybeAddTraceHeader, bB as performApiFetchBase, bK as renderError, bM as throwFetchError, bF as truncate } from './config-8UymS5SL.mjs';
|
|
3
3
|
import * as jsoncParser from 'jsonc-parser';
|
|
4
4
|
export { constructWranglerConfig } from './browser.mjs';
|
|
5
5
|
export { Counter, MetricsRegistry } from './prometheus-metrics.mjs';
|
|
6
6
|
import { ChildProcess } from 'node:child_process';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import 'node:url';
|
|
8
|
+
import 'undici';
|
|
9
9
|
import '@cloudflare/workers-shared';
|
|
10
10
|
import 'cloudflare';
|
|
11
11
|
|
|
@@ -557,248 +557,35 @@ declare function getEnvironmentVariableFactory<Choices extends readonly string[]
|
|
|
557
557
|
readonly choices?: Choices;
|
|
558
558
|
}): () => ElementType<Choices>;
|
|
559
559
|
|
|
560
|
+
interface GetGlobalConfigPathOptions {
|
|
561
|
+
/**
|
|
562
|
+
* The application namespace. Defaults to `"wrangler"`.
|
|
563
|
+
*/
|
|
564
|
+
appName?: string;
|
|
565
|
+
/**
|
|
566
|
+
* Whether to prepend a `.` to `appName` when resolving the XDG path and the
|
|
567
|
+
* legacy `$HOME` directory. Defaults to `true` to match wrangler's
|
|
568
|
+
* historical behaviour (`.wrangler`).
|
|
569
|
+
*/
|
|
570
|
+
leadingDot?: boolean;
|
|
571
|
+
/**
|
|
572
|
+
* When `true` (the default, matching wrangler's historical behaviour), a
|
|
573
|
+
* pre-existing `~/.<appName>` directory takes precedence over the XDG path.
|
|
574
|
+
* Pass `false` to always use the XDG-compliant path.
|
|
575
|
+
*/
|
|
576
|
+
useLegacyHomeDir?: boolean;
|
|
577
|
+
}
|
|
560
578
|
/**
|
|
561
|
-
*
|
|
562
|
-
*
|
|
563
|
-
* By default this will use `create cloudflare`.
|
|
564
|
-
*
|
|
565
|
-
* To run against the beta release of C3 use:
|
|
566
|
-
*
|
|
567
|
-
* ```sh
|
|
568
|
-
* # Tell Wrangler to use the beta version of create-cloudflare
|
|
569
|
-
* WRANGLER_C3_COMMAND="create cloudflare@beta" npx wrangler init
|
|
570
|
-
* ```
|
|
571
|
-
*
|
|
572
|
-
* To test the integration between wrangler and C3 locally, use:
|
|
573
|
-
*
|
|
574
|
-
* ```sh
|
|
575
|
-
* # Ensure both Wrangler and C3 are built
|
|
576
|
-
* npm run build
|
|
577
|
-
* # Tell Wrangler to use the local version of create-cloudflare
|
|
578
|
-
* WRANGLER_C3_COMMAND="exec ./packages/create-cloudflare" npx wrangler init temp
|
|
579
|
-
* ```
|
|
580
|
-
*
|
|
581
|
-
* Note that you cannot use `WRANGLER_C3_COMMAND="create cloudflare@2"` if you are
|
|
582
|
-
* running Wrangler from inside the monorepo as the bin paths get messed up.
|
|
583
|
-
*/
|
|
584
|
-
declare const getC3CommandFromEnv: () => string;
|
|
585
|
-
/**
|
|
586
|
-
* `WRANGLER_SEND_METRICS` can override whether we attempt to send metrics information to Sparrow.
|
|
587
|
-
*/
|
|
588
|
-
declare const getWranglerSendMetricsFromEnv: () => boolean | undefined;
|
|
589
|
-
/**
|
|
590
|
-
* `WRANGLER_SEND_ERROR_REPORTS` controls whether we attempt to send error reports to Sentry.
|
|
591
|
-
*
|
|
592
|
-
* Defaults to `false` to avoid noisy false-positive reports. Users can opt in
|
|
593
|
-
* by setting `WRANGLER_SEND_ERROR_REPORTS=true`.
|
|
594
|
-
*/
|
|
595
|
-
declare const getWranglerSendErrorReportsFromEnv: () => boolean;
|
|
596
|
-
/**
|
|
597
|
-
* Set `WRANGLER_API_ENVIRONMENT` environment variable to "staging" to tell Wrangler to hit the staging APIs rather than production.
|
|
598
|
-
*/
|
|
599
|
-
declare const getCloudflareApiEnvironmentFromEnv: () => "staging" | "production";
|
|
600
|
-
/**
|
|
601
|
-
* The compliance region to use for the API requests.
|
|
602
|
-
*/
|
|
603
|
-
type ComplianceConfig = Partial<Pick<Config, "compliance_region">>;
|
|
604
|
-
/** Used for commands that explicitly do not support compliance regions other than "public" */
|
|
605
|
-
declare const COMPLIANCE_REGION_CONFIG_PUBLIC: ComplianceConfig;
|
|
606
|
-
/**
|
|
607
|
-
* Used for commands where there is no configuration available and
|
|
608
|
-
* we rely upon the CLOUDFLARE_COMPLIANCE_REGION environment variable
|
|
609
|
-
* to determine the compliance region.
|
|
610
|
-
*/
|
|
611
|
-
declare const COMPLIANCE_REGION_CONFIG_UNKNOWN: ComplianceConfig;
|
|
612
|
-
/**
|
|
613
|
-
* Set `CLOUDFLARE_COMPLIANCE_REGION` environment variable to "fedramp_high"
|
|
614
|
-
* or set the `compliance_region` property in the Wrangler configuration
|
|
615
|
-
* to tell Wrangler to run in FedRAMP High compliance region mode, rather than "public" mode.
|
|
616
|
-
*/
|
|
617
|
-
declare const getCloudflareComplianceRegion: (complianceConfig: ComplianceConfig) => "public" | "fedramp_high";
|
|
618
|
-
/**
|
|
619
|
-
* `CLOUDFLARE_API_BASE_URL` specifies the URL to the Cloudflare API.
|
|
620
|
-
*
|
|
621
|
-
* If this environment variable is not set, it will default to a URL computed from the
|
|
622
|
-
* Cloudflare compliance region and the API environment.
|
|
623
|
-
*/
|
|
624
|
-
declare const getCloudflareApiBaseUrl: (complianceConfig: ComplianceConfig) => string;
|
|
625
|
-
/**
|
|
626
|
-
* Compute the subdomain for the compliance region.
|
|
627
|
-
*/
|
|
628
|
-
declare function getComplianceRegionSubdomain(complianceConfig: ComplianceConfig): string;
|
|
629
|
-
/**
|
|
630
|
-
* `WRANGLER_LOG_SANITIZE` specifies whether we sanitize debug logs.
|
|
631
|
-
*
|
|
632
|
-
* By default we do, since debug logs could be added to GitHub issues and shouldn't include sensitive information.
|
|
633
|
-
*/
|
|
634
|
-
declare const getSanitizeLogs: () => boolean;
|
|
635
|
-
/**
|
|
636
|
-
* `WRANGLER_OUTPUT_FILE_DIRECTORY` specifies a directory where we should write a file containing output data in ND-JSON format.
|
|
637
|
-
*
|
|
638
|
-
* If this is set a random file will be created in this directory, and certain Wrangler commands will write entries to this file.
|
|
639
|
-
* This is overridden by the `WRANGLER_OUTPUT_FILE_PATH` environment variable.
|
|
640
|
-
*/
|
|
641
|
-
declare const getOutputFileDirectoryFromEnv: () => string | undefined;
|
|
642
|
-
/**
|
|
643
|
-
* `WRANGLER_OUTPUT_FILE_PATH` specifies a path to a file where we should write output data in ND-JSON format.
|
|
644
|
-
*
|
|
645
|
-
* If this is set certain Wrangler commands will write entries to this file.
|
|
646
|
-
* This overrides the `WRANGLER_OUTPUT_FILE_DIRECTORY` environment variable.
|
|
647
|
-
*/
|
|
648
|
-
declare const getOutputFilePathFromEnv: () => string | undefined;
|
|
649
|
-
/**
|
|
650
|
-
* `WRANGLER_CI_MATCH_TAG` specifies a Worker tag
|
|
651
|
-
*
|
|
652
|
-
* If this is set, Wrangler will ensure the Worker being targeted has this tag
|
|
653
|
-
*/
|
|
654
|
-
declare const getCIMatchTag: () => string | undefined;
|
|
655
|
-
/**
|
|
656
|
-
* `WRANGLER_CI_OVERRIDE_NAME` specifies a Worker name
|
|
657
|
-
*
|
|
658
|
-
* If this is set, Wrangler will override the Worker name with this one
|
|
659
|
-
*/
|
|
660
|
-
declare const getCIOverrideName: () => string | undefined;
|
|
661
|
-
/**
|
|
662
|
-
* `WRANGLER_CI_OVERRIDE_NETWORK_MODE_HOST` specifies whether --network=host should be set
|
|
663
|
-
*
|
|
664
|
-
* If this is set to true, Wrangler will use the --network=host flag when calling out to docker to build container images
|
|
665
|
-
*/
|
|
666
|
-
declare const getCIOverrideNetworkModeHost: () => string | undefined;
|
|
667
|
-
/**
|
|
668
|
-
* `WRANGLER_CI_GENERATE_PREVIEW_ALIAS` specifies whether to generate a preview alias during version upload
|
|
669
|
-
*
|
|
670
|
-
* If this is set to true, Wrangler will attempt to autogenerate the preview alias by using the branch
|
|
671
|
-
* name. If the branch name is too long and an alias cannot be created, a warning will be printed to the console.
|
|
672
|
-
*/
|
|
673
|
-
declare const getCIGeneratePreviewAlias: () => "true" | "false";
|
|
674
|
-
/**
|
|
675
|
-
* `WORKERS_CI_BRANCH` is the branch name exposed by Workers CI
|
|
676
|
-
*
|
|
677
|
-
*/
|
|
678
|
-
declare const getWorkersCIBranchName: () => string | undefined;
|
|
679
|
-
/**
|
|
680
|
-
* `WRANGLER_BUILD_CONDITIONS` specifies the "build conditions" to use when importing packages at build time.
|
|
681
|
-
*
|
|
682
|
-
* See https://nodejs.org/api/packages.html#conditional-exports
|
|
683
|
-
* and https://esbuild.github.io/api/#how-conditions-work.
|
|
684
|
-
*
|
|
685
|
-
* If this is set, Wrangler will configure esbuild to use this list of conditions.
|
|
686
|
-
* The format is a string of comma separated conditions.
|
|
687
|
-
*/
|
|
688
|
-
declare const getBuildConditionsFromEnv: () => string | undefined;
|
|
689
|
-
/**
|
|
690
|
-
* `WRANGLER_BUILD_PLATFORM` specifies the "build platform" to use when importing packages at build time.
|
|
691
|
-
*
|
|
692
|
-
* See https://esbuild.github.io/api/#platform
|
|
693
|
-
* and https://esbuild.github.io/api/#how-conditions-work.
|
|
694
|
-
*
|
|
695
|
-
* If this is set, Wrangler will configure esbuild to use this platform.
|
|
696
|
-
*/
|
|
697
|
-
declare const getBuildPlatformFromEnv: () => string | undefined;
|
|
698
|
-
/**
|
|
699
|
-
* `WRANGLER_REGISTRY_PATH` specifies the file based dev registry folder
|
|
700
|
-
*/
|
|
701
|
-
declare const getRegistryPath: () => string;
|
|
702
|
-
/**
|
|
703
|
-
* `WRANGLER_D1_EXTRA_LOCATION_CHOICES` is an internal variable to let D1 team target their testing environments.
|
|
704
|
-
*
|
|
705
|
-
* External accounts cannot access testing environments, so should not set this variable.
|
|
706
|
-
*/
|
|
707
|
-
declare const getD1ExtraLocationChoices: () => string | undefined;
|
|
708
|
-
/**
|
|
709
|
-
* `WRANGLER_DOCKER_BIN` specifies the path to a docker binary.
|
|
710
|
-
*
|
|
711
|
-
* By default it's `docker`.
|
|
712
|
-
*/
|
|
713
|
-
declare const getDockerPath: () => string;
|
|
714
|
-
declare const getSubdomainMixedStateCheckDisabled: () => boolean;
|
|
715
|
-
/**
|
|
716
|
-
/**
|
|
717
|
-
* `CLOUDFLARE_LOAD_DEV_VARS_FROM_DOT_ENV` specifies whether to load vars for local dev from `.env` files.
|
|
718
|
-
*/
|
|
719
|
-
declare const getCloudflareLoadDevVarsFromDotEnv: () => boolean;
|
|
720
|
-
/**
|
|
721
|
-
* `CLOUDFLARE_INCLUDE_PROCESS_ENV` specifies whether to include the `process.env` in vars loaded from `.env` for local development.
|
|
722
|
-
*/
|
|
723
|
-
declare const getCloudflareIncludeProcessEnvFromEnv: () => boolean;
|
|
724
|
-
declare const getTraceHeader: () => string | undefined;
|
|
725
|
-
declare const getDisableConfigWatching: () => boolean;
|
|
726
|
-
/**
|
|
727
|
-
* Hide the Wrangler version banner and command status (deprecated/experimental) warnings
|
|
728
|
-
*/
|
|
729
|
-
declare const getWranglerHideBanner: () => boolean;
|
|
730
|
-
/**
|
|
731
|
-
* `CLOUDFLARE_ENV` specifies the currently selected Wrangler/Cloudflare environment.
|
|
732
|
-
*/
|
|
733
|
-
declare const getCloudflareEnv: () => string | undefined;
|
|
734
|
-
/**
|
|
735
|
-
* `OPEN_NEXT_DEPLOY` is an environment variables that indicates that the current process is being
|
|
736
|
-
* run by the open-next deploy command
|
|
737
|
-
*/
|
|
738
|
-
declare const getOpenNextDeployFromEnv: () => string | undefined;
|
|
739
|
-
/**
|
|
740
|
-
* `X_LOCAL_EXPLORER` enables the local explorer UI at /cdn-cgi/explorer.
|
|
741
|
-
*/
|
|
742
|
-
declare const getLocalExplorerEnabledFromEnv: () => boolean;
|
|
743
|
-
/**
|
|
744
|
-
* `X_BROWSER_HEADFUL` opens the browser in headful (visible) mode when using the
|
|
745
|
-
* Browser Run API in local development.
|
|
746
|
-
*
|
|
747
|
-
* Set to "true" to enable:
|
|
748
|
-
*
|
|
749
|
-
* ```sh
|
|
750
|
-
* X_BROWSER_HEADFUL=true vite dev
|
|
751
|
-
* ```
|
|
752
|
-
*
|
|
753
|
-
* Note: when using `@cloudflare/playwright`, two Chrome windows may appear — the initial blank
|
|
754
|
-
* page and the one created by `browser.newPage()`. This is expected due to how Playwright handles
|
|
755
|
-
* browser contexts via CDP.
|
|
756
|
-
*/
|
|
757
|
-
declare const getBrowserRenderingHeadfulFromEnv: () => boolean;
|
|
758
|
-
/**
|
|
759
|
-
* `CLOUDFLARE_CF_FETCH_ENABLED` controls whether Miniflare fetches the `cf.json` file
|
|
760
|
-
* containing request.cf properties from workers.cloudflare.com.
|
|
761
|
-
*
|
|
762
|
-
* - If set to "false", disables fetching and uses fallback data (no files created)
|
|
763
|
-
* - If set to "true" or not set, uses the default behavior (fetches and caches cf.json)
|
|
764
|
-
*
|
|
765
|
-
* This is particularly useful for non-JavaScript projects that don't want
|
|
766
|
-
* a node_modules directory created automatically.
|
|
767
|
-
*
|
|
768
|
-
* Example:
|
|
769
|
-
* ```sh
|
|
770
|
-
* # Disable cf fetching entirely
|
|
771
|
-
* CLOUDFLARE_CF_FETCH_ENABLED=false npx wrangler dev
|
|
772
|
-
* ```
|
|
773
|
-
*/
|
|
774
|
-
declare const getCfFetchEnabledFromEnv: () => boolean;
|
|
775
|
-
/**
|
|
776
|
-
* `CLOUDFLARE_CF_FETCH_PATH` specifies a custom path for caching the cf.json file.
|
|
777
|
-
*
|
|
778
|
-
* - If set, uses the specified path instead of the default node_modules/.mf/cf.json
|
|
779
|
-
* - If not set, uses the default location (node_modules/.mf/cf.json)
|
|
579
|
+
* Resolve the global config directory for a Cloudflare CLI.
|
|
780
580
|
*
|
|
781
|
-
*
|
|
782
|
-
*
|
|
783
|
-
*
|
|
784
|
-
* CLOUDFLARE_CF_FETCH_PATH=/tmp/cf-cache.json npx wrangler dev
|
|
785
|
-
* ```
|
|
786
|
-
*/
|
|
787
|
-
declare const getCfFetchPathFromEnv: () => string | undefined;
|
|
788
|
-
/**
|
|
789
|
-
* `WRANGLER_CACHE_DIR` specifies a custom directory for Wrangler's cache files.
|
|
790
|
-
* This overrides the default `node_modules/.cache/wrangler` location.
|
|
791
|
-
* Useful for Yarn PnP or projects without node_modules.
|
|
581
|
+
* Defaults to wrangler's directory (`.wrangler`) so existing callers are
|
|
582
|
+
* unaffected, but accepts an `appName` so other first-party CLIs (e.g. `cf`)
|
|
583
|
+
* can reuse the same XDG-compliant resolution under their own namespace.
|
|
792
584
|
*/
|
|
793
|
-
declare
|
|
585
|
+
declare function getGlobalConfigPath({ appName, leadingDot, useLegacyHomeDir, }?: GetGlobalConfigPathOptions): string;
|
|
794
586
|
/**
|
|
795
|
-
*
|
|
796
|
-
*
|
|
797
|
-
* If set, Wrangler will use this cloudflared binary instead of downloading one.
|
|
798
|
-
* The path must point to an existing executable file.
|
|
587
|
+
* @deprecated Use {@link getGlobalConfigPath} instead.
|
|
799
588
|
*/
|
|
800
|
-
declare const getCloudflaredPathFromEnv: () => string | undefined;
|
|
801
|
-
|
|
802
589
|
declare function getGlobalWranglerConfigPath(): string;
|
|
803
590
|
|
|
804
591
|
type YYYY = `${number}${number}${number}${number}`;
|
|
@@ -888,30 +675,6 @@ declare function sweepStaleWranglerTmpDirs(tmpRoot: string): void;
|
|
|
888
675
|
*/
|
|
889
676
|
declare function getWranglerTmpDir(projectRoot: string | undefined, prefix: string, cleanup?: boolean): EphemeralDirectory;
|
|
890
677
|
|
|
891
|
-
/**
|
|
892
|
-
* cloudflared binary management for Wrangler tunnel commands.
|
|
893
|
-
*
|
|
894
|
-
* This module handles downloading, caching, and running the cloudflared binary.
|
|
895
|
-
* It uses the Cloudflare update worker (update.argotunnel.com) to resolve
|
|
896
|
-
* the latest version and download URL, matching cloudflared's own update mechanism.
|
|
897
|
-
*/
|
|
898
|
-
|
|
899
|
-
interface Logger$1 {
|
|
900
|
-
log: typeof console.log;
|
|
901
|
-
warn: typeof console.warn;
|
|
902
|
-
debug: typeof console.debug;
|
|
903
|
-
}
|
|
904
|
-
/**
|
|
905
|
-
* Spawn cloudflared process with automatic binary management
|
|
906
|
-
*/
|
|
907
|
-
declare function spawnCloudflared(args: string[], options?: {
|
|
908
|
-
stdio?: "inherit" | "pipe";
|
|
909
|
-
env?: Record<string, string>;
|
|
910
|
-
skipVersionCheck?: boolean;
|
|
911
|
-
confirmDownload?: (message: string) => Promise<boolean>;
|
|
912
|
-
logger?: Logger$1;
|
|
913
|
-
}): Promise<ChildProcess>;
|
|
914
|
-
|
|
915
678
|
interface QuickTunnelResult {
|
|
916
679
|
mode: "quick";
|
|
917
680
|
publicUrl: URL;
|
|
@@ -933,7 +696,7 @@ interface TunnelOptions {
|
|
|
933
696
|
expiryMs?: number;
|
|
934
697
|
reminderIntervalMs?: number;
|
|
935
698
|
extendHint?: string;
|
|
936
|
-
logger?: Logger
|
|
699
|
+
logger?: Pick<Logger, "debug" | "log" | "warn">;
|
|
937
700
|
}
|
|
938
701
|
/**
|
|
939
702
|
* Start a Cloudflare Quick Tunnel for a local dev origin.
|
|
@@ -945,74 +708,24 @@ interface TunnelOptions {
|
|
|
945
708
|
*/
|
|
946
709
|
declare function startTunnel(options: TunnelOptions): Tunnel;
|
|
947
710
|
|
|
948
|
-
interface FetchError {
|
|
949
|
-
code: number;
|
|
950
|
-
documentation_url?: string;
|
|
951
|
-
message: string;
|
|
952
|
-
error_chain?: FetchError[];
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
type Logger = {
|
|
956
|
-
debug: (...args: unknown[]) => void;
|
|
957
|
-
debugWithSanitization: (label: string, ...args: unknown[]) => void;
|
|
958
|
-
log: (...args: unknown[]) => void;
|
|
959
|
-
info: (...args: unknown[]) => void;
|
|
960
|
-
warn: (...args: unknown[]) => void;
|
|
961
|
-
error: (...args: unknown[]) => void;
|
|
962
|
-
};
|
|
963
|
-
|
|
964
|
-
type ApiCredentials = {
|
|
965
|
-
apiToken: string;
|
|
966
|
-
} | {
|
|
967
|
-
authKey: string;
|
|
968
|
-
authEmail: string;
|
|
969
|
-
};
|
|
970
|
-
interface FetchResult<ResponseType = unknown> {
|
|
971
|
-
success: boolean;
|
|
972
|
-
result: ResponseType;
|
|
973
|
-
errors: FetchError[];
|
|
974
|
-
messages?: (string | {
|
|
975
|
-
code?: number;
|
|
976
|
-
message: string;
|
|
977
|
-
})[];
|
|
978
|
-
result_info?: unknown;
|
|
979
|
-
}
|
|
980
|
-
type FetchResultFetcher = <ResponseType>(complianceConfig: ComplianceConfig, resource: string, init?: RequestInit, queryParams?: URLSearchParams, abortSignal?: AbortSignal) => Promise<ResponseType>;
|
|
981
|
-
type FetchListResultFetcher = <ResponseType>(complianceConfig: ComplianceConfig, resource: string, init?: RequestInit, queryParams?: URLSearchParams) => Promise<ResponseType[]>;
|
|
982
711
|
/**
|
|
712
|
+
* cloudflared binary management for Wrangler tunnel commands.
|
|
983
713
|
*
|
|
984
|
-
*
|
|
985
|
-
*
|
|
714
|
+
* This module handles downloading, caching, and running the cloudflared binary.
|
|
715
|
+
* It uses the Cloudflare update worker (update.argotunnel.com) to resolve
|
|
716
|
+
* the latest version and download URL, matching cloudflared's own update mechanism.
|
|
986
717
|
*/
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
interface PageResultInfo {
|
|
999
|
-
page: number;
|
|
1000
|
-
per_page: number;
|
|
1001
|
-
count: number;
|
|
1002
|
-
total_count: number;
|
|
1003
|
-
}
|
|
1004
|
-
declare function hasMorePages(result_info: unknown): result_info is PageResultInfo;
|
|
1005
|
-
declare function renderError(err: FetchError | {
|
|
1006
|
-
code?: number;
|
|
1007
|
-
message?: string;
|
|
1008
|
-
documentation_url?: string;
|
|
1009
|
-
}, level?: number): string;
|
|
1010
|
-
declare function addAuthorizationHeader(headers: Headers, auth: ApiCredentials, overrideExisting?: boolean): void;
|
|
1011
|
-
declare function throwFetchError(resource: string, response: FetchResult<unknown>, status: number): never;
|
|
1012
|
-
declare function hasCursor(result_info: unknown): result_info is {
|
|
1013
|
-
cursor: string;
|
|
1014
|
-
};
|
|
1015
|
-
declare function maybeAddTraceHeader(headers: Headers): void;
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Spawn cloudflared process with automatic binary management
|
|
721
|
+
*/
|
|
722
|
+
declare function spawnCloudflared(args: string[], options?: {
|
|
723
|
+
stdio?: "inherit" | "pipe";
|
|
724
|
+
env?: Record<string, string>;
|
|
725
|
+
skipVersionCheck?: boolean;
|
|
726
|
+
confirmDownload?: (message: string) => Promise<boolean>;
|
|
727
|
+
logger?: Pick<Logger, "debug" | "log" | "warn">;
|
|
728
|
+
}): Promise<ChildProcess>;
|
|
1016
729
|
|
|
1017
730
|
type NpmVersionCheckResult = {
|
|
1018
731
|
status: "up-to-date";
|
|
@@ -1075,4 +788,4 @@ declare function getZoneFromRoute(route: Route): string | undefined;
|
|
|
1075
788
|
*/
|
|
1076
789
|
declare function getHostFromUrl(urlLike: string): string | undefined;
|
|
1077
790
|
|
|
1078
|
-
export { APIError,
|
|
791
|
+
export { APIError, Binding, type BindingLocalSupport, CommandLineArgsError, type CompatDate, Config, type ConfigBindingFieldName, type ConfigBindingOptions, DeprecationError, Diagnostics, type EphemeralDirectory, FatalError, type GetGlobalConfigPathOptions, JsonFriendlyFatalError, type Location, Logger, type Message, MissingConfigError, type NormalizeAndValidateConfigArgs, type NpmVersionCheckResult, type PackageJSON, ParseError, type ParseFile, PatchConfigError, RawConfig, type ResolveConfigPathOptions, Route, type TelemetryMessage, type Tunnel, type TunnelOptions, UserError, WorkerMetadataBinding, assertNever, bucketFormatMessage, configFileName, configFormat, createFatalError, experimental_patchConfig, experimental_readRawConfig, fetchLatestNpmVersion, findWranglerConfig, formatConfigSnippet, formatTime, friendlyBindingNames, getBindingLocalSupport, getBindingTypeFriendlyName, getBooleanEnvironmentVariableFactory, getEnvironmentVariableFactory, getGlobalConfigPath, getGlobalWranglerConfigPath, getHostFromRoute, getHostFromUrl, getTodaysCompatDate, getWranglerHiddenDirPath, getWranglerTmpDir, getZoneFromRoute, hasProperty, indexLocation, isCompatDate, isDirectory, isDockerfile, isOptionalProperty, isPagesConfig, isRedirectedConfig, isRequiredProperty, isValidR2BucketName, mapWorkerMetadataBindings, normalizeAndValidateConfig, parseByteSize, parseHumanDuration, parseJSON, parseJSONC, parseNonHyphenedUuid, parsePackageJSON, parseTOML, readFileSync, readFileSyncToBuffer, removeDir, removeDirSync, resolveWranglerConfigPath, retryOnAPIFailure, searchLocation, spawnCloudflared, startTunnel, sweepStaleWranglerTmpDirs, validatePagesConfig };
|
package/dist/index.mjs
CHANGED
|
@@ -5930,14 +5930,24 @@ __reExport(mod_esm_exports, __toESM(require_mod_cjs3(), 1));
|
|
|
5930
5930
|
var mod_esm_default = import_mod_cjs.default;
|
|
5931
5931
|
|
|
5932
5932
|
// src/global-wrangler-config-path.ts
|
|
5933
|
+
function getGlobalConfigPath({
|
|
5934
|
+
appName = "wrangler",
|
|
5935
|
+
leadingDot = true,
|
|
5936
|
+
useLegacyHomeDir = true
|
|
5937
|
+
} = {}) {
|
|
5938
|
+
const dirName = `${leadingDot ? "." : ""}${appName}`;
|
|
5939
|
+
const configDir = mod_esm_default(dirName).config();
|
|
5940
|
+
if (useLegacyHomeDir) {
|
|
5941
|
+
const legacyConfigDir = path3.join(os.homedir(), dirName);
|
|
5942
|
+
if (isDirectory(legacyConfigDir)) {
|
|
5943
|
+
return legacyConfigDir;
|
|
5944
|
+
}
|
|
5945
|
+
}
|
|
5946
|
+
return configDir;
|
|
5947
|
+
}
|
|
5948
|
+
__name(getGlobalConfigPath, "getGlobalConfigPath");
|
|
5933
5949
|
function getGlobalWranglerConfigPath() {
|
|
5934
|
-
|
|
5935
|
-
const legacyConfigDir = path3.join(os.homedir(), ".wrangler");
|
|
5936
|
-
if (isDirectory(legacyConfigDir)) {
|
|
5937
|
-
return legacyConfigDir;
|
|
5938
|
-
} else {
|
|
5939
|
-
return configDir;
|
|
5940
|
-
}
|
|
5950
|
+
return getGlobalConfigPath();
|
|
5941
5951
|
}
|
|
5942
5952
|
__name(getGlobalWranglerConfigPath, "getGlobalWranglerConfigPath");
|
|
5943
5953
|
|
|
@@ -10133,6 +10143,55 @@ var validateServiceBinding = /* @__PURE__ */ __name((diagnostics, field, value)
|
|
|
10133
10143
|
);
|
|
10134
10144
|
isValid2 = false;
|
|
10135
10145
|
}
|
|
10146
|
+
if (hasProperty(value, "dev") && value.dev !== void 0) {
|
|
10147
|
+
if (typeof value.dev !== "object" || value.dev === null || Array.isArray(value.dev)) {
|
|
10148
|
+
diagnostics.errors.push(
|
|
10149
|
+
`"${field}" bindings should have an object "dev" field but got ${JSON.stringify(
|
|
10150
|
+
value.dev
|
|
10151
|
+
)}.`
|
|
10152
|
+
);
|
|
10153
|
+
isValid2 = false;
|
|
10154
|
+
} else {
|
|
10155
|
+
if (!hasProperty(value.dev, "plugin") || typeof value.dev.plugin !== "object" || value.dev.plugin === null || Array.isArray(value.dev.plugin)) {
|
|
10156
|
+
diagnostics.errors.push(
|
|
10157
|
+
`"${field}.dev" should have an object "plugin" field but got ${JSON.stringify(
|
|
10158
|
+
value.dev.plugin
|
|
10159
|
+
)}.`
|
|
10160
|
+
);
|
|
10161
|
+
isValid2 = false;
|
|
10162
|
+
} else {
|
|
10163
|
+
if (!isRequiredProperty(value.dev.plugin, "package", "string")) {
|
|
10164
|
+
diagnostics.errors.push(
|
|
10165
|
+
`"${field}.dev.plugin" should have a string "package" field but got ${JSON.stringify(
|
|
10166
|
+
value.dev.plugin.package
|
|
10167
|
+
)}.`
|
|
10168
|
+
);
|
|
10169
|
+
isValid2 = false;
|
|
10170
|
+
}
|
|
10171
|
+
if (!isRequiredProperty(value.dev.plugin, "name", "string")) {
|
|
10172
|
+
diagnostics.errors.push(
|
|
10173
|
+
`"${field}.dev.plugin" should have a string "name" field but got ${JSON.stringify(
|
|
10174
|
+
value.dev.plugin.name
|
|
10175
|
+
)}.`
|
|
10176
|
+
);
|
|
10177
|
+
isValid2 = false;
|
|
10178
|
+
}
|
|
10179
|
+
}
|
|
10180
|
+
if (hasProperty(value.dev, "options") && value.dev.options !== void 0 && (typeof value.dev.options !== "object" || value.dev.options === null || Array.isArray(value.dev.options))) {
|
|
10181
|
+
diagnostics.errors.push(
|
|
10182
|
+
`"${field}.dev.options" should be an object but got ${JSON.stringify(
|
|
10183
|
+
value.dev.options
|
|
10184
|
+
)}.`
|
|
10185
|
+
);
|
|
10186
|
+
isValid2 = false;
|
|
10187
|
+
}
|
|
10188
|
+
}
|
|
10189
|
+
if (value.remote === true) {
|
|
10190
|
+
diagnostics.warnings.push(
|
|
10191
|
+
`"${field}" binding has both "dev" and "remote" set; "remote" is ignored when "dev" is present and the binding is routed through the local Miniflare plugin.`
|
|
10192
|
+
);
|
|
10193
|
+
}
|
|
10194
|
+
}
|
|
10136
10195
|
if (!isRemoteValid(value, field, diagnostics)) {
|
|
10137
10196
|
isValid2 = false;
|
|
10138
10197
|
}
|
|
@@ -12357,7 +12416,7 @@ __name(maybeThrowFriendlyError, "maybeThrowFriendlyError");
|
|
|
12357
12416
|
function logHeaders(headers, logger) {
|
|
12358
12417
|
const clone = cloneHeaders(headers);
|
|
12359
12418
|
clone.delete("Authorization");
|
|
12360
|
-
logger.debugWithSanitization(
|
|
12419
|
+
logger.debugWithSanitization?.(
|
|
12361
12420
|
"HEADERS:",
|
|
12362
12421
|
JSON.stringify(Object.fromEntries(clone), null, 2)
|
|
12363
12422
|
);
|
|
@@ -12378,11 +12437,11 @@ async function performApiFetchBase(complianceConfig, resource, init = {}, userAg
|
|
|
12378
12437
|
logger.debug(
|
|
12379
12438
|
`-- START CF API REQUEST: ${method} ${getCloudflareApiBaseUrl(complianceConfig)}${resource}`
|
|
12380
12439
|
);
|
|
12381
|
-
logger.debugWithSanitization("QUERY STRING:", queryString);
|
|
12440
|
+
logger.debugWithSanitization?.("QUERY STRING:", queryString);
|
|
12382
12441
|
logHeaders(headers, logger);
|
|
12383
|
-
logger.debugWithSanitization("INIT:", JSON.stringify({ ...init }, null, 2));
|
|
12442
|
+
logger.debugWithSanitization?.("INIT:", JSON.stringify({ ...init }, null, 2));
|
|
12384
12443
|
if (init.body instanceof FormData) {
|
|
12385
|
-
logger.debugWithSanitization(
|
|
12444
|
+
logger.debugWithSanitization?.(
|
|
12386
12445
|
"BODY:",
|
|
12387
12446
|
await new Response(init.body).text(),
|
|
12388
12447
|
null,
|
|
@@ -12420,7 +12479,7 @@ async function fetchInternalBase(complianceConfig, resource, init = {}, userAgen
|
|
|
12420
12479
|
response.status
|
|
12421
12480
|
);
|
|
12422
12481
|
logHeaders(response.headers, logger);
|
|
12423
|
-
logger.debugWithSanitization("RESPONSE:", jsonText);
|
|
12482
|
+
logger.debugWithSanitization?.("RESPONSE:", jsonText);
|
|
12424
12483
|
logger.debug("-- END CF API RESPONSE");
|
|
12425
12484
|
if (!jsonText && (response.status === 204 || response.status === 205)) {
|
|
12426
12485
|
return {
|
|
@@ -12659,6 +12718,27 @@ function throwWAFBlockError(headers, method, resource, status, statusText) {
|
|
|
12659
12718
|
});
|
|
12660
12719
|
}
|
|
12661
12720
|
__name(throwWAFBlockError, "throwWAFBlockError");
|
|
12721
|
+
async function fetchKVGetValueBase(complianceConfig, accountId, namespaceId, key, userAgent, logger, credentials) {
|
|
12722
|
+
const headers = new Headers();
|
|
12723
|
+
addAuthorizationHeader(headers, credentials);
|
|
12724
|
+
headers.set("User-Agent", userAgent);
|
|
12725
|
+
maybeAddTraceHeader(headers);
|
|
12726
|
+
const resource = `${getCloudflareApiBaseUrl(complianceConfig)}/accounts/${accountId}/storage/kv/namespaces/${namespaceId}/values/${key}`;
|
|
12727
|
+
logger.debug(`-- START CF API REQUEST: GET ${resource}`);
|
|
12728
|
+
logger.debug("-- END CF API REQUEST");
|
|
12729
|
+
const response = await fetch(resource, {
|
|
12730
|
+
method: "GET",
|
|
12731
|
+
headers
|
|
12732
|
+
});
|
|
12733
|
+
if (response.ok) {
|
|
12734
|
+
return await response.arrayBuffer();
|
|
12735
|
+
} else {
|
|
12736
|
+
throw new Error(
|
|
12737
|
+
`Failed to fetch ${resource} - ${response.status}: ${response.statusText}`
|
|
12738
|
+
);
|
|
12739
|
+
}
|
|
12740
|
+
}
|
|
12741
|
+
__name(fetchKVGetValueBase, "fetchKVGetValueBase");
|
|
12662
12742
|
function hasCursor(result_info) {
|
|
12663
12743
|
const cursor = result_info?.cursor;
|
|
12664
12744
|
return cursor !== void 0 && cursor !== null && cursor !== "";
|
|
@@ -12706,6 +12786,16 @@ async function fetchLatestNpmVersion(name, version) {
|
|
|
12706
12786
|
return { status: "update-available", latest: result.latest };
|
|
12707
12787
|
}
|
|
12708
12788
|
__name(fetchLatestNpmVersion, "fetchLatestNpmVersion");
|
|
12789
|
+
|
|
12790
|
+
// src/logger.ts
|
|
12791
|
+
var LOGGER_LEVELS = {
|
|
12792
|
+
none: -1,
|
|
12793
|
+
error: 0,
|
|
12794
|
+
warn: 1,
|
|
12795
|
+
info: 2,
|
|
12796
|
+
log: 3,
|
|
12797
|
+
debug: 4
|
|
12798
|
+
};
|
|
12709
12799
|
var MAX_ATTEMPTS = 3;
|
|
12710
12800
|
async function retryOnAPIFailure(action, logger, backoff = 0, attempts = MAX_ATTEMPTS, abortSignal) {
|
|
12711
12801
|
try {
|
|
@@ -12811,4 +12901,4 @@ safe-buffer/index.js:
|
|
|
12811
12901
|
(*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
12812
12902
|
*/
|
|
12813
12903
|
|
|
12814
|
-
export { COMPLIANCE_REGION_CONFIG_PUBLIC, COMPLIANCE_REGION_CONFIG_UNKNOWN, Diagnostics, PatchConfigError, addAuthorizationHeader, bucketFormatMessage, defaultWranglerConfig, experimental_patchConfig, extractAccountTag, extractWAFBlockRayId, fetchInternalBase, fetchLatestNpmVersion, fetchListResultBase, fetchResultBase, formatTime, friendlyBindingNames, getBindingLocalSupport, getBindingTypeFriendlyName, getBooleanEnvironmentVariableFactory, getBrowserRenderingHeadfulFromEnv, getBuildConditionsFromEnv, getBuildPlatformFromEnv, getC3CommandFromEnv, getCIGeneratePreviewAlias, getCIMatchTag, getCIOverrideName, getCIOverrideNetworkModeHost, getCfFetchEnabledFromEnv, getCfFetchPathFromEnv, getCloudflareApiBaseUrl, getCloudflareApiEnvironmentFromEnv, getCloudflareComplianceRegion, getCloudflareEnv, getCloudflareIncludeProcessEnvFromEnv, getCloudflareLoadDevVarsFromDotEnv, getCloudflaredPathFromEnv, getComplianceRegionSubdomain, getD1ExtraLocationChoices, getDisableConfigWatching, getDockerPath, getEnvironmentVariableFactory, getGlobalWranglerConfigPath, getHostFromRoute, getHostFromUrl, getLocalExplorerEnabledFromEnv, getOpenNextDeployFromEnv, getOutputFileDirectoryFromEnv, getOutputFilePathFromEnv, getRegistryPath, getSanitizeLogs, getSubdomainMixedStateCheckDisabled, getTraceHeader, getWorkersCIBranchName, getWranglerCacheDirFromEnv, getWranglerHiddenDirPath, getWranglerHideBanner, getWranglerSendErrorReportsFromEnv, getWranglerSendMetricsFromEnv, getWranglerTmpDir, getZoneFromRoute, hasCursor, hasMorePages, hasProperty, isDockerfile, isOptionalProperty, isPagesConfig, isRequiredProperty, isValidR2BucketName, isWAFBlockResponse, maybeAddTraceHeader, normalizeAndValidateConfig, performApiFetchBase, renderError, retryOnAPIFailure, spawnCloudflared, startTunnel, sweepStaleWranglerTmpDirs, throwFetchError, truncate, validatePagesConfig };
|
|
12904
|
+
export { COMPLIANCE_REGION_CONFIG_PUBLIC, COMPLIANCE_REGION_CONFIG_UNKNOWN, Diagnostics, LOGGER_LEVELS, PatchConfigError, addAuthorizationHeader, bucketFormatMessage, defaultWranglerConfig, experimental_patchConfig, extractAccountTag, extractWAFBlockRayId, fetchInternalBase, fetchKVGetValueBase, fetchLatestNpmVersion, fetchListResultBase, fetchResultBase, formatTime, friendlyBindingNames, getBindingLocalSupport, getBindingTypeFriendlyName, getBooleanEnvironmentVariableFactory, getBrowserRenderingHeadfulFromEnv, getBuildConditionsFromEnv, getBuildPlatformFromEnv, getC3CommandFromEnv, getCIGeneratePreviewAlias, getCIMatchTag, getCIOverrideName, getCIOverrideNetworkModeHost, getCfFetchEnabledFromEnv, getCfFetchPathFromEnv, getCloudflareApiBaseUrl, getCloudflareApiEnvironmentFromEnv, getCloudflareComplianceRegion, getCloudflareEnv, getCloudflareIncludeProcessEnvFromEnv, getCloudflareLoadDevVarsFromDotEnv, getCloudflaredPathFromEnv, getComplianceRegionSubdomain, getD1ExtraLocationChoices, getDisableConfigWatching, getDockerPath, getEnvironmentVariableFactory, getGlobalConfigPath, getGlobalWranglerConfigPath, getHostFromRoute, getHostFromUrl, getLocalExplorerEnabledFromEnv, getOpenNextDeployFromEnv, getOutputFileDirectoryFromEnv, getOutputFilePathFromEnv, getRegistryPath, getSanitizeLogs, getSubdomainMixedStateCheckDisabled, getTraceHeader, getWorkersCIBranchName, getWranglerCacheDirFromEnv, getWranglerHiddenDirPath, getWranglerHideBanner, getWranglerSendErrorReportsFromEnv, getWranglerSendMetricsFromEnv, getWranglerTmpDir, getZoneFromRoute, hasCursor, hasMorePages, hasProperty, isDockerfile, isOptionalProperty, isPagesConfig, isRequiredProperty, isValidR2BucketName, isWAFBlockResponse, maybeAddTraceHeader, normalizeAndValidateConfig, performApiFetchBase, renderError, retryOnAPIFailure, spawnCloudflared, startTunnel, sweepStaleWranglerTmpDirs, throwFetchError, truncate, validatePagesConfig };
|