wrangler 4.38.0 → 4.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.
@@ -327,7 +327,7 @@
327
327
  },
328
328
  "remote": {
329
329
  "type": "boolean",
330
- "description": "Whether the KV namespace should be remote or not"
330
+ "description": "Whether the KV namespace should be remote or not in local development"
331
331
  }
332
332
  },
333
333
  "required": [
@@ -367,7 +367,7 @@
367
367
  },
368
368
  "remote": {
369
369
  "type": "boolean",
370
- "description": "Whether the binding should be remote or not"
370
+ "description": "Whether the binding should be remote or not in local development"
371
371
  }
372
372
  },
373
373
  "required": [
@@ -400,7 +400,7 @@
400
400
  },
401
401
  "remote": {
402
402
  "type": "boolean",
403
- "description": "Whether the Queue producer should be remote or not"
403
+ "description": "Whether the Queue producer should be remote or not in local development"
404
404
  }
405
405
  },
406
406
  "required": [
@@ -494,7 +494,7 @@
494
494
  },
495
495
  "remote": {
496
496
  "type": "boolean",
497
- "description": "Whether the R2 bucket should be remote or not"
497
+ "description": "Whether the R2 bucket should be remote or not in local development"
498
498
  }
499
499
  },
500
500
  "required": [
@@ -540,7 +540,7 @@
540
540
  },
541
541
  "remote": {
542
542
  "type": "boolean",
543
- "description": "Whether the D1 database should be remote or not"
543
+ "description": "Whether the D1 database should be remote or not in local development"
544
544
  }
545
545
  },
546
546
  "required": [
@@ -566,7 +566,7 @@
566
566
  },
567
567
  "remote": {
568
568
  "type": "boolean",
569
- "description": "Whether the Vectorize index should be remote or not"
569
+ "description": "Whether the Vectorize index should be remote or not in local development"
570
570
  }
571
571
  },
572
572
  "required": [
@@ -629,7 +629,7 @@
629
629
  },
630
630
  "remote": {
631
631
  "type": "boolean",
632
- "description": "Whether the service binding should be remote or not"
632
+ "description": "Whether the service binding should be remote or not in local development"
633
633
  }
634
634
  },
635
635
  "required": [
@@ -671,7 +671,7 @@
671
671
  },
672
672
  "remote": {
673
673
  "type": "boolean",
674
- "description": "Whether the Browser binding should be remote or not"
674
+ "description": "Whether the Browser binding should be remote or not in local development"
675
675
  }
676
676
  },
677
677
  "required": [
@@ -692,7 +692,7 @@
692
692
  },
693
693
  "remote": {
694
694
  "type": "boolean",
695
- "description": "Whether the AI binding should be remote or not"
695
+ "description": "Whether the AI binding should be remote or not in local development"
696
696
  }
697
697
  },
698
698
  "required": [
@@ -710,7 +710,7 @@
710
710
  },
711
711
  "remote": {
712
712
  "type": "boolean",
713
- "description": "Whether the Images binding should be remote or not"
713
+ "description": "Whether the Images binding should be remote or not in local development"
714
714
  }
715
715
  },
716
716
  "required": [
@@ -857,7 +857,7 @@
857
857
  },
858
858
  "remote": {
859
859
  "type": "boolean",
860
- "description": "Whether the mtls fetcher should be remote or not"
860
+ "description": "Whether the mtls fetcher should be remote or not in local development"
861
861
  }
862
862
  },
863
863
  "required": [
@@ -896,7 +896,7 @@
896
896
  },
897
897
  "remote": {
898
898
  "type": "boolean",
899
- "description": "Whether the Dispatch Namespace should be remote or not"
899
+ "description": "Whether the Dispatch Namespace should be remote or not in local development"
900
900
  }
901
901
  },
902
902
  "required": [
@@ -920,6 +920,10 @@
920
920
  "pipeline": {
921
921
  "type": "string",
922
922
  "description": "Name of the Pipeline to bind"
923
+ },
924
+ "remote": {
925
+ "type": "boolean",
926
+ "description": "Whether the pipeline should be remote or not in local development"
923
927
  }
924
928
  },
925
929
  "required": [
@@ -1028,6 +1032,51 @@
1028
1032
  "description": "Specifies rate limit bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
1029
1033
  "default": []
1030
1034
  },
1035
+ "worker_loaders": {
1036
+ "type": "array",
1037
+ "items": {
1038
+ "type": "object",
1039
+ "properties": {
1040
+ "binding": {
1041
+ "type": "string",
1042
+ "description": "The binding name used to refer to the Worker Loader in the Worker."
1043
+ }
1044
+ },
1045
+ "required": [
1046
+ "binding"
1047
+ ],
1048
+ "additionalProperties": false
1049
+ },
1050
+ "description": "Specifies Worker Loader bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
1051
+ "default": []
1052
+ },
1053
+ "vpc_services": {
1054
+ "type": "array",
1055
+ "items": {
1056
+ "type": "object",
1057
+ "properties": {
1058
+ "binding": {
1059
+ "type": "string",
1060
+ "description": "The binding name used to refer to the VPC service in the Worker."
1061
+ },
1062
+ "service_id": {
1063
+ "type": "string",
1064
+ "description": "The service ID of the VPC connectivity service."
1065
+ },
1066
+ "remote": {
1067
+ "type": "boolean",
1068
+ "description": "Whether the VPC service is remote or not"
1069
+ }
1070
+ },
1071
+ "required": [
1072
+ "binding",
1073
+ "service_id"
1074
+ ],
1075
+ "additionalProperties": false
1076
+ },
1077
+ "description": "Specifies VPC services that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
1078
+ "default": []
1079
+ },
1031
1080
  "pages_build_output_dir": {
1032
1081
  "type": "string",
1033
1082
  "description": "The directory of static assets to serve.\n\nThe presence of this field in a Wrangler configuration file indicates a Pages project, and will prompt the handling of the configuration file according to the Pages-specific validation rules."
@@ -1427,7 +1476,7 @@
1427
1476
  },
1428
1477
  "remote": {
1429
1478
  "type": "boolean",
1430
- "description": "Whether the KV namespace should be remote or not"
1479
+ "description": "Whether the KV namespace should be remote or not in local development"
1431
1480
  }
1432
1481
  },
1433
1482
  "required": [
@@ -1467,7 +1516,7 @@
1467
1516
  },
1468
1517
  "remote": {
1469
1518
  "type": "boolean",
1470
- "description": "Whether the binding should be remote or not"
1519
+ "description": "Whether the binding should be remote or not in local development"
1471
1520
  }
1472
1521
  },
1473
1522
  "required": [
@@ -1500,7 +1549,7 @@
1500
1549
  },
1501
1550
  "remote": {
1502
1551
  "type": "boolean",
1503
- "description": "Whether the Queue producer should be remote or not"
1552
+ "description": "Whether the Queue producer should be remote or not in local development"
1504
1553
  }
1505
1554
  },
1506
1555
  "required": [
@@ -1594,7 +1643,7 @@
1594
1643
  },
1595
1644
  "remote": {
1596
1645
  "type": "boolean",
1597
- "description": "Whether the R2 bucket should be remote or not"
1646
+ "description": "Whether the R2 bucket should be remote or not in local development"
1598
1647
  }
1599
1648
  },
1600
1649
  "required": [
@@ -1640,7 +1689,7 @@
1640
1689
  },
1641
1690
  "remote": {
1642
1691
  "type": "boolean",
1643
- "description": "Whether the D1 database should be remote or not"
1692
+ "description": "Whether the D1 database should be remote or not in local development"
1644
1693
  }
1645
1694
  },
1646
1695
  "required": [
@@ -1666,7 +1715,7 @@
1666
1715
  },
1667
1716
  "remote": {
1668
1717
  "type": "boolean",
1669
- "description": "Whether the Vectorize index should be remote or not"
1718
+ "description": "Whether the Vectorize index should be remote or not in local development"
1670
1719
  }
1671
1720
  },
1672
1721
  "required": [
@@ -1729,7 +1778,7 @@
1729
1778
  },
1730
1779
  "remote": {
1731
1780
  "type": "boolean",
1732
- "description": "Whether the service binding should be remote or not"
1781
+ "description": "Whether the service binding should be remote or not in local development"
1733
1782
  }
1734
1783
  },
1735
1784
  "required": [
@@ -1771,7 +1820,7 @@
1771
1820
  },
1772
1821
  "remote": {
1773
1822
  "type": "boolean",
1774
- "description": "Whether the Browser binding should be remote or not"
1823
+ "description": "Whether the Browser binding should be remote or not in local development"
1775
1824
  }
1776
1825
  },
1777
1826
  "required": [
@@ -1792,7 +1841,7 @@
1792
1841
  },
1793
1842
  "remote": {
1794
1843
  "type": "boolean",
1795
- "description": "Whether the AI binding should be remote or not"
1844
+ "description": "Whether the AI binding should be remote or not in local development"
1796
1845
  }
1797
1846
  },
1798
1847
  "required": [
@@ -1810,7 +1859,7 @@
1810
1859
  },
1811
1860
  "remote": {
1812
1861
  "type": "boolean",
1813
- "description": "Whether the Images binding should be remote or not"
1862
+ "description": "Whether the Images binding should be remote or not in local development"
1814
1863
  }
1815
1864
  },
1816
1865
  "required": [
@@ -1957,7 +2006,7 @@
1957
2006
  },
1958
2007
  "remote": {
1959
2008
  "type": "boolean",
1960
- "description": "Whether the mtls fetcher should be remote or not"
2009
+ "description": "Whether the mtls fetcher should be remote or not in local development"
1961
2010
  }
1962
2011
  },
1963
2012
  "required": [
@@ -1996,7 +2045,7 @@
1996
2045
  },
1997
2046
  "remote": {
1998
2047
  "type": "boolean",
1999
- "description": "Whether the Dispatch Namespace should be remote or not"
2048
+ "description": "Whether the Dispatch Namespace should be remote or not in local development"
2000
2049
  }
2001
2050
  },
2002
2051
  "required": [
@@ -2020,6 +2069,10 @@
2020
2069
  "pipeline": {
2021
2070
  "type": "string",
2022
2071
  "description": "Name of the Pipeline to bind"
2072
+ },
2073
+ "remote": {
2074
+ "type": "boolean",
2075
+ "description": "Whether the pipeline should be remote or not in local development"
2023
2076
  }
2024
2077
  },
2025
2078
  "required": [
@@ -2127,6 +2180,51 @@
2127
2180
  },
2128
2181
  "description": "Specifies rate limit bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
2129
2182
  "default": []
2183
+ },
2184
+ "worker_loaders": {
2185
+ "type": "array",
2186
+ "items": {
2187
+ "type": "object",
2188
+ "properties": {
2189
+ "binding": {
2190
+ "type": "string",
2191
+ "description": "The binding name used to refer to the Worker Loader in the Worker."
2192
+ }
2193
+ },
2194
+ "required": [
2195
+ "binding"
2196
+ ],
2197
+ "additionalProperties": false
2198
+ },
2199
+ "description": "Specifies Worker Loader bindings that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
2200
+ "default": []
2201
+ },
2202
+ "vpc_services": {
2203
+ "type": "array",
2204
+ "items": {
2205
+ "type": "object",
2206
+ "properties": {
2207
+ "binding": {
2208
+ "type": "string",
2209
+ "description": "The binding name used to refer to the VPC service in the Worker."
2210
+ },
2211
+ "service_id": {
2212
+ "type": "string",
2213
+ "description": "The service ID of the VPC connectivity service."
2214
+ },
2215
+ "remote": {
2216
+ "type": "boolean",
2217
+ "description": "Whether the VPC service is remote or not"
2218
+ }
2219
+ },
2220
+ "required": [
2221
+ "binding",
2222
+ "service_id"
2223
+ ],
2224
+ "additionalProperties": false
2225
+ },
2226
+ "description": "Specifies VPC services that are bound to this Worker environment.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
2227
+ "default": []
2130
2228
  }
2131
2229
  },
2132
2230
  "additionalProperties": false,
@@ -2503,7 +2601,7 @@
2503
2601
  },
2504
2602
  "remote": {
2505
2603
  "type": "boolean",
2506
- "description": "Whether the Workflow should be remote or not"
2604
+ "description": "Whether the Workflow should be remote or not in local development"
2507
2605
  }
2508
2606
  },
2509
2607
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.38.0",
3
+ "version": "4.39.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -54,16 +54,15 @@
54
54
  "esbuild": "0.25.4",
55
55
  "path-to-regexp": "6.3.0",
56
56
  "unenv": "2.0.0-rc.21",
57
- "workerd": "1.20250917.0",
57
+ "workerd": "1.20250923.0",
58
58
  "@cloudflare/kv-asset-handler": "0.4.0",
59
59
  "@cloudflare/unenv-preset": "2.7.4",
60
- "miniflare": "4.20250917.0"
60
+ "miniflare": "4.20250923.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@aws-sdk/client-s3": "^3.721.0",
64
- "@cloudflare/jsrpc": "link:../../vendor/jsrpc",
65
64
  "@cloudflare/types": "6.18.4",
66
- "@cloudflare/workers-types": "^4.20250917.0",
65
+ "@cloudflare/workers-types": "^4.20250923.0",
67
66
  "@cspotcode/source-map-support": "0.8.1",
68
67
  "@iarna/toml": "^3.0.0",
69
68
  "@sentry/node": "^7.86.0",
@@ -86,6 +85,7 @@
86
85
  "@types/yargs": "^17.0.22",
87
86
  "@vitest/ui": "~3.2.0",
88
87
  "@webcontainer/env": "^1.1.0",
88
+ "capnweb": "^0.1.0",
89
89
  "chalk": "^5.2.0",
90
90
  "chokidar": "^4.0.1",
91
91
  "cli-table3": "^0.6.3",
@@ -141,12 +141,12 @@
141
141
  "@cloudflare/cli": "1.1.2",
142
142
  "@cloudflare/containers-shared": "0.2.10",
143
143
  "@cloudflare/eslint-config-shared": "1.1.0",
144
- "@cloudflare/pages-shared": "^0.13.73",
145
- "@cloudflare/workers-tsconfig": "0.0.0",
146
- "@cloudflare/workers-shared": "0.18.8"
144
+ "@cloudflare/pages-shared": "^0.13.74",
145
+ "@cloudflare/workers-shared": "0.18.8",
146
+ "@cloudflare/workers-tsconfig": "0.0.0"
147
147
  },
148
148
  "peerDependencies": {
149
- "@cloudflare/workers-types": "^4.20250917.0"
149
+ "@cloudflare/workers-types": "^4.20250923.0"
150
150
  },
151
151
  "peerDependenciesMeta": {
152
152
  "@cloudflare/workers-types": {
@@ -1,4 +1,4 @@
1
- import { newWorkersRpcResponse } from "@cloudflare/jsrpc";
1
+ import { newWorkersRpcResponse } from "capnweb";
2
2
  import { EmailMessage } from "cloudflare:email";
3
3
 
4
4
  interface Env extends Record<string, unknown> {}
@@ -11,7 +11,7 @@ class BindingNotFoundError extends Error {
11
11
 
12
12
  /**
13
13
  * For most bindings, we expose them as
14
- * - RPC stubs directly to @cloudflare/jsrpc, or
14
+ * - RPC stubs directly to capnweb, or
15
15
  * - HTTP based fetchers
16
16
  * However, there are some special cases:
17
17
  * - SendEmail bindings need to take EmailMessage as their first parameter,
@@ -86,7 +86,7 @@ function getExposedFetcher(request: Request, env: Env) {
86
86
  * This Worker can proxy two types of remote binding:
87
87
  * 1. "raw" bindings, where this Worker has been configured to pass through the raw
88
88
  * fetch from a local workerd instance to the relevant binding
89
- * 2. JSRPC bindings, where this Worker uses @cloudflare/jsrpc to proxy RPC
89
+ * 2. JSRPC bindings, where this Worker uses capnweb to proxy RPC
90
90
  * communication in userland. This is always over a WebSocket connection
91
91
  */
92
92
  function isJSRPCBinding(request: Request): boolean {