wrangler 4.35.0 → 4.37.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.
@@ -325,9 +325,9 @@
325
325
  "type": "string",
326
326
  "description": "The ID of the KV namespace used during `wrangler dev`"
327
327
  },
328
- "experimental_remote": {
328
+ "remote": {
329
329
  "type": "boolean",
330
- "description": "Whether the KV namespace should be remote or not (only available under `--x-remote-bindings`)"
330
+ "description": "Whether the KV namespace should be remote or not"
331
331
  }
332
332
  },
333
333
  "required": [
@@ -358,9 +358,9 @@
358
358
  },
359
359
  "description": "If this binding should be restricted to a set of verified addresses"
360
360
  },
361
- "experimental_remote": {
361
+ "remote": {
362
362
  "type": "boolean",
363
- "description": "Whether the binding should be remote or not (only available under `--x-remote-bindings`)"
363
+ "description": "Whether the binding should be remote or not"
364
364
  }
365
365
  },
366
366
  "required": [
@@ -391,9 +391,9 @@
391
391
  "type": "number",
392
392
  "description": "The number of seconds to wait before delivering a message"
393
393
  },
394
- "experimental_remote": {
394
+ "remote": {
395
395
  "type": "boolean",
396
- "description": "Whether the Queue producer should be remote or not (only available under `--x-remote-bindings`)"
396
+ "description": "Whether the Queue producer should be remote or not"
397
397
  }
398
398
  },
399
399
  "required": [
@@ -485,9 +485,9 @@
485
485
  "type": "string",
486
486
  "description": "The jurisdiction that the bucket exists in. Default if not present."
487
487
  },
488
- "experimental_remote": {
488
+ "remote": {
489
489
  "type": "boolean",
490
- "description": "Whether the R2 bucket should be remote or not (only available under `--x-remote-bindings`)"
490
+ "description": "Whether the R2 bucket should be remote or not"
491
491
  }
492
492
  },
493
493
  "required": [
@@ -531,9 +531,9 @@
531
531
  "type": "string",
532
532
  "description": "Internal use only."
533
533
  },
534
- "experimental_remote": {
534
+ "remote": {
535
535
  "type": "boolean",
536
- "description": "Whether the D1 database should be remote or not (only available under `--x-remote-bindings`)"
536
+ "description": "Whether the D1 database should be remote or not"
537
537
  }
538
538
  },
539
539
  "required": [
@@ -557,9 +557,9 @@
557
557
  "type": "string",
558
558
  "description": "The name of the index."
559
559
  },
560
- "experimental_remote": {
560
+ "remote": {
561
561
  "type": "boolean",
562
- "description": "Whether the Vectorize index should be remote or not (only available under `--x-remote-bindings`)"
562
+ "description": "Whether the Vectorize index should be remote or not"
563
563
  }
564
564
  },
565
565
  "required": [
@@ -620,9 +620,9 @@
620
620
  "additionalProperties": {},
621
621
  "description": "Optional properties that will be made available to the service via ctx.props."
622
622
  },
623
- "experimental_remote": {
623
+ "remote": {
624
624
  "type": "boolean",
625
- "description": "Whether the service binding should be remote or not (only available under `--x-remote-bindings`)"
625
+ "description": "Whether the service binding should be remote or not"
626
626
  }
627
627
  },
628
628
  "required": [
@@ -662,9 +662,9 @@
662
662
  "binding": {
663
663
  "type": "string"
664
664
  },
665
- "experimental_remote": {
665
+ "remote": {
666
666
  "type": "boolean",
667
- "description": "Whether the Browser binding should be remote or not (only available under `--x-remote-bindings`)"
667
+ "description": "Whether the Browser binding should be remote or not"
668
668
  }
669
669
  },
670
670
  "required": [
@@ -683,9 +683,9 @@
683
683
  "staging": {
684
684
  "type": "boolean"
685
685
  },
686
- "experimental_remote": {
686
+ "remote": {
687
687
  "type": "boolean",
688
- "description": "Whether the AI binding should be remote or not (only available under `--x-remote-bindings`)"
688
+ "description": "Whether the AI binding should be remote or not"
689
689
  }
690
690
  },
691
691
  "required": [
@@ -701,9 +701,9 @@
701
701
  "binding": {
702
702
  "type": "string"
703
703
  },
704
- "experimental_remote": {
704
+ "remote": {
705
705
  "type": "boolean",
706
- "description": "Whether the Images binding should be remote or not (only available under `--x-remote-bindings`)"
706
+ "description": "Whether the Images binding should be remote or not"
707
707
  }
708
708
  },
709
709
  "required": [
@@ -735,10 +735,50 @@
735
735
  "type": "object",
736
736
  "properties": {
737
737
  "name": {
738
- "type": "string"
738
+ "type": "string",
739
+ "description": "The name of the binding provided to the Worker"
739
740
  },
740
741
  "type": {
741
- "type": "string"
742
+ "type": "string",
743
+ "description": "The 'type' of the unsafe binding."
744
+ },
745
+ "dev": {
746
+ "type": "object",
747
+ "properties": {
748
+ "plugin": {
749
+ "type": "object",
750
+ "properties": {
751
+ "package": {
752
+ "type": "string",
753
+ "description": "Package is the bare specifier of the package that exposes plugins to integrate into Miniflare via a named `plugins` export.",
754
+ "examples": [
755
+ "@cloudflare/my-external-miniflare-plugin"
756
+ ]
757
+ },
758
+ "name": {
759
+ "type": "string",
760
+ "description": "Plugin is the name of the plugin exposed by the package.",
761
+ "examples": [
762
+ "MY_UNSAFE_PLUGIN"
763
+ ]
764
+ }
765
+ },
766
+ "required": [
767
+ "package",
768
+ "name"
769
+ ],
770
+ "additionalProperties": false
771
+ },
772
+ "options": {
773
+ "type": "object",
774
+ "additionalProperties": {},
775
+ "description": "Optional mapping of unsafe bindings names to options provided for the plugin."
776
+ }
777
+ },
778
+ "required": [
779
+ "plugin"
780
+ ],
781
+ "additionalProperties": false
742
782
  }
743
783
  },
744
784
  "required": [
@@ -808,9 +848,9 @@
808
848
  "type": "string",
809
849
  "description": "The uuid of the uploaded mTLS certificate"
810
850
  },
811
- "experimental_remote": {
851
+ "remote": {
812
852
  "type": "boolean",
813
- "description": "Whether the mtls fetcher should be remote or not (only available under `--x-remote-bindings`)"
853
+ "description": "Whether the mtls fetcher should be remote or not"
814
854
  }
815
855
  },
816
856
  "required": [
@@ -847,9 +887,9 @@
847
887
  "$ref": "#/definitions/DispatchNamespaceOutbound",
848
888
  "description": "Details about the outbound Worker which will handle outbound requests from your namespace"
849
889
  },
850
- "experimental_remote": {
890
+ "remote": {
851
891
  "type": "boolean",
852
- "description": "Whether the Dispatch Namespace should be remote or not (only available under `--x-remote-bindings`)"
892
+ "description": "Whether the Dispatch Namespace should be remote or not"
853
893
  }
854
894
  },
855
895
  "required": [
@@ -934,6 +974,53 @@
934
974
  "description": "**DO NOT USE**. Hello World Binding Config to serve as an explanatory example.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
935
975
  "default": []
936
976
  },
977
+ "ratelimits": {
978
+ "type": "array",
979
+ "items": {
980
+ "type": "object",
981
+ "properties": {
982
+ "name": {
983
+ "type": "string",
984
+ "description": "The binding name used to refer to the rate limiter in the Worker."
985
+ },
986
+ "namespace_id": {
987
+ "type": "string",
988
+ "description": "The namespace ID for this rate limiter."
989
+ },
990
+ "simple": {
991
+ "type": "object",
992
+ "properties": {
993
+ "limit": {
994
+ "type": "number",
995
+ "description": "The maximum number of requests allowed in the time period."
996
+ },
997
+ "period": {
998
+ "type": "number",
999
+ "enum": [
1000
+ 10,
1001
+ 60
1002
+ ],
1003
+ "description": "The time period in seconds (10 for ten seconds, 60 for one minute)."
1004
+ }
1005
+ },
1006
+ "required": [
1007
+ "limit",
1008
+ "period"
1009
+ ],
1010
+ "additionalProperties": false,
1011
+ "description": "Simple rate limiting configuration."
1012
+ }
1013
+ },
1014
+ "required": [
1015
+ "name",
1016
+ "namespace_id",
1017
+ "simple"
1018
+ ],
1019
+ "additionalProperties": false
1020
+ },
1021
+ "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.",
1022
+ "default": []
1023
+ },
937
1024
  "pages_build_output_dir": {
938
1025
  "type": "string",
939
1026
  "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."
@@ -1331,9 +1418,9 @@
1331
1418
  "type": "string",
1332
1419
  "description": "The ID of the KV namespace used during `wrangler dev`"
1333
1420
  },
1334
- "experimental_remote": {
1421
+ "remote": {
1335
1422
  "type": "boolean",
1336
- "description": "Whether the KV namespace should be remote or not (only available under `--x-remote-bindings`)"
1423
+ "description": "Whether the KV namespace should be remote or not"
1337
1424
  }
1338
1425
  },
1339
1426
  "required": [
@@ -1364,9 +1451,9 @@
1364
1451
  },
1365
1452
  "description": "If this binding should be restricted to a set of verified addresses"
1366
1453
  },
1367
- "experimental_remote": {
1454
+ "remote": {
1368
1455
  "type": "boolean",
1369
- "description": "Whether the binding should be remote or not (only available under `--x-remote-bindings`)"
1456
+ "description": "Whether the binding should be remote or not"
1370
1457
  }
1371
1458
  },
1372
1459
  "required": [
@@ -1397,9 +1484,9 @@
1397
1484
  "type": "number",
1398
1485
  "description": "The number of seconds to wait before delivering a message"
1399
1486
  },
1400
- "experimental_remote": {
1487
+ "remote": {
1401
1488
  "type": "boolean",
1402
- "description": "Whether the Queue producer should be remote or not (only available under `--x-remote-bindings`)"
1489
+ "description": "Whether the Queue producer should be remote or not"
1403
1490
  }
1404
1491
  },
1405
1492
  "required": [
@@ -1491,9 +1578,9 @@
1491
1578
  "type": "string",
1492
1579
  "description": "The jurisdiction that the bucket exists in. Default if not present."
1493
1580
  },
1494
- "experimental_remote": {
1581
+ "remote": {
1495
1582
  "type": "boolean",
1496
- "description": "Whether the R2 bucket should be remote or not (only available under `--x-remote-bindings`)"
1583
+ "description": "Whether the R2 bucket should be remote or not"
1497
1584
  }
1498
1585
  },
1499
1586
  "required": [
@@ -1537,9 +1624,9 @@
1537
1624
  "type": "string",
1538
1625
  "description": "Internal use only."
1539
1626
  },
1540
- "experimental_remote": {
1627
+ "remote": {
1541
1628
  "type": "boolean",
1542
- "description": "Whether the D1 database should be remote or not (only available under `--x-remote-bindings`)"
1629
+ "description": "Whether the D1 database should be remote or not"
1543
1630
  }
1544
1631
  },
1545
1632
  "required": [
@@ -1563,9 +1650,9 @@
1563
1650
  "type": "string",
1564
1651
  "description": "The name of the index."
1565
1652
  },
1566
- "experimental_remote": {
1653
+ "remote": {
1567
1654
  "type": "boolean",
1568
- "description": "Whether the Vectorize index should be remote or not (only available under `--x-remote-bindings`)"
1655
+ "description": "Whether the Vectorize index should be remote or not"
1569
1656
  }
1570
1657
  },
1571
1658
  "required": [
@@ -1626,9 +1713,9 @@
1626
1713
  "additionalProperties": {},
1627
1714
  "description": "Optional properties that will be made available to the service via ctx.props."
1628
1715
  },
1629
- "experimental_remote": {
1716
+ "remote": {
1630
1717
  "type": "boolean",
1631
- "description": "Whether the service binding should be remote or not (only available under `--x-remote-bindings`)"
1718
+ "description": "Whether the service binding should be remote or not"
1632
1719
  }
1633
1720
  },
1634
1721
  "required": [
@@ -1668,9 +1755,9 @@
1668
1755
  "binding": {
1669
1756
  "type": "string"
1670
1757
  },
1671
- "experimental_remote": {
1758
+ "remote": {
1672
1759
  "type": "boolean",
1673
- "description": "Whether the Browser binding should be remote or not (only available under `--x-remote-bindings`)"
1760
+ "description": "Whether the Browser binding should be remote or not"
1674
1761
  }
1675
1762
  },
1676
1763
  "required": [
@@ -1689,9 +1776,9 @@
1689
1776
  "staging": {
1690
1777
  "type": "boolean"
1691
1778
  },
1692
- "experimental_remote": {
1779
+ "remote": {
1693
1780
  "type": "boolean",
1694
- "description": "Whether the AI binding should be remote or not (only available under `--x-remote-bindings`)"
1781
+ "description": "Whether the AI binding should be remote or not"
1695
1782
  }
1696
1783
  },
1697
1784
  "required": [
@@ -1707,9 +1794,9 @@
1707
1794
  "binding": {
1708
1795
  "type": "string"
1709
1796
  },
1710
- "experimental_remote": {
1797
+ "remote": {
1711
1798
  "type": "boolean",
1712
- "description": "Whether the Images binding should be remote or not (only available under `--x-remote-bindings`)"
1799
+ "description": "Whether the Images binding should be remote or not"
1713
1800
  }
1714
1801
  },
1715
1802
  "required": [
@@ -1741,10 +1828,50 @@
1741
1828
  "type": "object",
1742
1829
  "properties": {
1743
1830
  "name": {
1744
- "type": "string"
1831
+ "type": "string",
1832
+ "description": "The name of the binding provided to the Worker"
1745
1833
  },
1746
1834
  "type": {
1747
- "type": "string"
1835
+ "type": "string",
1836
+ "description": "The 'type' of the unsafe binding."
1837
+ },
1838
+ "dev": {
1839
+ "type": "object",
1840
+ "properties": {
1841
+ "plugin": {
1842
+ "type": "object",
1843
+ "properties": {
1844
+ "package": {
1845
+ "type": "string",
1846
+ "description": "Package is the bare specifier of the package that exposes plugins to integrate into Miniflare via a named `plugins` export.",
1847
+ "examples": [
1848
+ "@cloudflare/my-external-miniflare-plugin"
1849
+ ]
1850
+ },
1851
+ "name": {
1852
+ "type": "string",
1853
+ "description": "Plugin is the name of the plugin exposed by the package.",
1854
+ "examples": [
1855
+ "MY_UNSAFE_PLUGIN"
1856
+ ]
1857
+ }
1858
+ },
1859
+ "required": [
1860
+ "package",
1861
+ "name"
1862
+ ],
1863
+ "additionalProperties": false
1864
+ },
1865
+ "options": {
1866
+ "type": "object",
1867
+ "additionalProperties": {},
1868
+ "description": "Optional mapping of unsafe bindings names to options provided for the plugin."
1869
+ }
1870
+ },
1871
+ "required": [
1872
+ "plugin"
1873
+ ],
1874
+ "additionalProperties": false
1748
1875
  }
1749
1876
  },
1750
1877
  "required": [
@@ -1814,9 +1941,9 @@
1814
1941
  "type": "string",
1815
1942
  "description": "The uuid of the uploaded mTLS certificate"
1816
1943
  },
1817
- "experimental_remote": {
1944
+ "remote": {
1818
1945
  "type": "boolean",
1819
- "description": "Whether the mtls fetcher should be remote or not (only available under `--x-remote-bindings`)"
1946
+ "description": "Whether the mtls fetcher should be remote or not"
1820
1947
  }
1821
1948
  },
1822
1949
  "required": [
@@ -1853,9 +1980,9 @@
1853
1980
  "$ref": "#/definitions/DispatchNamespaceOutbound",
1854
1981
  "description": "Details about the outbound Worker which will handle outbound requests from your namespace"
1855
1982
  },
1856
- "experimental_remote": {
1983
+ "remote": {
1857
1984
  "type": "boolean",
1858
- "description": "Whether the Dispatch Namespace should be remote or not (only available under `--x-remote-bindings`)"
1985
+ "description": "Whether the Dispatch Namespace should be remote or not"
1859
1986
  }
1860
1987
  },
1861
1988
  "required": [
@@ -1939,6 +2066,53 @@
1939
2066
  },
1940
2067
  "description": "**DO NOT USE**. Hello World Binding Config to serve as an explanatory example.\n\nNOTE: This field is not automatically inherited from the top level environment, and so must be specified in every named environment.",
1941
2068
  "default": []
2069
+ },
2070
+ "ratelimits": {
2071
+ "type": "array",
2072
+ "items": {
2073
+ "type": "object",
2074
+ "properties": {
2075
+ "name": {
2076
+ "type": "string",
2077
+ "description": "The binding name used to refer to the rate limiter in the Worker."
2078
+ },
2079
+ "namespace_id": {
2080
+ "type": "string",
2081
+ "description": "The namespace ID for this rate limiter."
2082
+ },
2083
+ "simple": {
2084
+ "type": "object",
2085
+ "properties": {
2086
+ "limit": {
2087
+ "type": "number",
2088
+ "description": "The maximum number of requests allowed in the time period."
2089
+ },
2090
+ "period": {
2091
+ "type": "number",
2092
+ "enum": [
2093
+ 10,
2094
+ 60
2095
+ ],
2096
+ "description": "The time period in seconds (10 for ten seconds, 60 for one minute)."
2097
+ }
2098
+ },
2099
+ "required": [
2100
+ "limit",
2101
+ "period"
2102
+ ],
2103
+ "additionalProperties": false,
2104
+ "description": "Simple rate limiting configuration."
2105
+ }
2106
+ },
2107
+ "required": [
2108
+ "name",
2109
+ "namespace_id",
2110
+ "simple"
2111
+ ],
2112
+ "additionalProperties": false
2113
+ },
2114
+ "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.",
2115
+ "default": []
1942
2116
  }
1943
2117
  },
1944
2118
  "additionalProperties": false,
@@ -2313,9 +2487,9 @@
2313
2487
  "type": "string",
2314
2488
  "description": "The script where the Workflow is defined (if it's external to this Worker)"
2315
2489
  },
2316
- "experimental_remote": {
2490
+ "remote": {
2317
2491
  "type": "boolean",
2318
- "description": "Whether the Workflow should be remote or not (only available under `--x-remote-bindings`)"
2492
+ "description": "Whether the Workflow should be remote or not"
2319
2493
  }
2320
2494
  },
2321
2495
  "required": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrangler",
3
- "version": "4.35.0",
3
+ "version": "4.37.0",
4
4
  "description": "Command-line interface for all things Cloudflare Workers",
5
5
  "keywords": [
6
6
  "wrangler",
@@ -57,7 +57,7 @@
57
57
  "workerd": "1.20250906.0",
58
58
  "@cloudflare/kv-asset-handler": "0.4.0",
59
59
  "@cloudflare/unenv-preset": "2.7.3",
60
- "miniflare": "4.20250906.0"
60
+ "miniflare": "4.20250906.2"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@aws-sdk/client-s3": "^3.721.0",
@@ -89,6 +89,7 @@
89
89
  "chalk": "^5.2.0",
90
90
  "chokidar": "^4.0.1",
91
91
  "cli-table3": "^0.6.3",
92
+ "cloudflare": "^4.5.0",
92
93
  "cmd-shim": "^4.1.0",
93
94
  "command-exists": "^1.2.9",
94
95
  "concurrently": "^8.2.2",
@@ -129,7 +130,7 @@
129
130
  "ts-json-schema-generator": "^1.5.0",
130
131
  "tsup": "8.3.0",
131
132
  "typescript": "^5.8.3",
132
- "undici": "^7.10.0",
133
+ "undici": "7.14.0",
133
134
  "update-check": "^1.5.4",
134
135
  "vitest": "~3.2.0",
135
136
  "vitest-websocket-mock": "^0.4.0",
@@ -137,10 +138,10 @@
137
138
  "xdg-app-paths": "^8.3.0",
138
139
  "xxhash-wasm": "^1.0.1",
139
140
  "yargs": "^17.7.2",
140
- "@cloudflare/containers-shared": "0.2.10",
141
141
  "@cloudflare/cli": "1.1.2",
142
- "@cloudflare/eslint-config-worker": "1.1.0",
143
- "@cloudflare/pages-shared": "^0.13.69",
142
+ "@cloudflare/containers-shared": "0.2.10",
143
+ "@cloudflare/eslint-config-shared": "1.1.0",
144
+ "@cloudflare/pages-shared": "^0.13.71",
144
145
  "@cloudflare/workers-shared": "0.18.8",
145
146
  "@cloudflare/workers-tsconfig": "0.0.0"
146
147
  },