@cloudflare/vite-plugin 0.0.0-ad58eaaca → 0.0.0-ad774e49b

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.
@@ -5,23 +5,31 @@ import {
5
5
  WorkflowEntrypoint
6
6
  } from "cloudflare:workers";
7
7
 
8
+ // src/constants.ts
9
+ var ADDITIONAL_MODULE_TYPES = [
10
+ "CompiledWasm",
11
+ "Data",
12
+ "Text"
13
+ ];
14
+
8
15
  // src/shared.ts
9
16
  var UNKNOWN_HOST = "http://localhost";
10
17
  var INIT_PATH = "/__vite_plugin_cloudflare_init__";
18
+ var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)__`;
19
+ var additionalModuleRE = new RegExp(ADDITIONAL_MODULE_PATTERN);
20
+ var additionalModuleGlobalRE = new RegExp(
21
+ ADDITIONAL_MODULE_PATTERN,
22
+ "g"
23
+ );
24
+ var VITE_DEV_METADATA_HEADER = "__VITE_DEV_METADATA__";
11
25
 
12
26
  // src/runner-worker/env.ts
13
27
  function stripInternalEnv(internalEnv) {
14
- const {
15
- __VITE_ROOT__,
16
- __VITE_ENTRY_PATH__,
17
- __VITE_INVOKE_MODULE__,
18
- __VITE_UNSAFE_EVAL__,
19
- ...userEnv
20
- } = internalEnv;
28
+ const { __VITE_INVOKE_MODULE__, __VITE_UNSAFE_EVAL__, ...userEnv } = internalEnv;
21
29
  return userEnv;
22
30
  }
23
31
 
24
- // ../../node_modules/.pnpm/vite@6.0.7_@types+node@18.19.74_jiti@2.4.2/node_modules/vite/dist/node/module-runner.js
32
+ // ../../node_modules/.pnpm/vite@6.1.0_@types+node@18.19.76_jiti@2.4.2/node_modules/vite/dist/node/module-runner.js
25
33
  var VALID_ID_PREFIX = "/@id/";
26
34
  var NULL_BYTE_PLACEHOLDER = "__x00__";
27
35
  var SOURCEMAPPING_URL = "sourceMa";
@@ -1352,7 +1360,7 @@ function exportAll(exports, sourceModule) {
1352
1360
 
1353
1361
  // src/runner-worker/module-runner.ts
1354
1362
  var moduleRunner;
1355
- async function createModuleRunner(env, webSocket) {
1363
+ async function createModuleRunner(env, webSocket, viteRoot) {
1356
1364
  if (moduleRunner) {
1357
1365
  throw new Error("Runner already initialized");
1358
1366
  }
@@ -1364,7 +1372,7 @@ async function createModuleRunner(env, webSocket) {
1364
1372
  });
1365
1373
  moduleRunner = new ModuleRunner(
1366
1374
  {
1367
- root: env.__VITE_ROOT__,
1375
+ root: viteRoot,
1368
1376
  sourcemapInterceptor: "prepareStackTrace",
1369
1377
  transport: {
1370
1378
  ...transport,
@@ -1409,7 +1417,7 @@ async function createModuleRunner(env, webSocket) {
1409
1417
  }
1410
1418
  },
1411
1419
  async runExternalModule(filepath) {
1412
- if (filepath.includes("/node_modules") && !filepath.includes("/node_modules/.vite")) {
1420
+ if (!additionalModuleRE.test(filepath) && filepath.includes("/node_modules") && !filepath.includes("/node_modules/.vite")) {
1413
1421
  throw new Error(
1414
1422
  `[Error] Trying to import non-prebundled module (only prebundled modules are allowed): ${filepath}
1415
1423
 
@@ -1448,6 +1456,7 @@ var DURABLE_OBJECT_KEYS = [
1448
1456
  "webSocketError"
1449
1457
  ];
1450
1458
  var WORKFLOW_ENTRYPOINT_KEYS = ["run"];
1459
+ var entryPath = "";
1451
1460
  function getRpcProperty(ctor, instance, key) {
1452
1461
  const prototypeHasKey = Reflect.has(ctor.prototype, key);
1453
1462
  if (!prototypeHasKey) {
@@ -1480,7 +1489,6 @@ function getRpcPropertyCallableThenable(key, property) {
1480
1489
  return fn;
1481
1490
  }
1482
1491
  async function getWorkerEntrypointRpcProperty(entrypoint, key) {
1483
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1484
1492
  const ctor = await getWorkerEntryExport(
1485
1493
  entryPath,
1486
1494
  entrypoint
@@ -1525,21 +1533,27 @@ function createWorkerEntrypointWrapper(entrypoint) {
1525
1533
  }
1526
1534
  for (const key of WORKER_ENTRYPOINT_KEYS) {
1527
1535
  Wrapper.prototype[key] = async function(arg) {
1528
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1529
1536
  if (key === "fetch") {
1530
1537
  const request = arg;
1531
1538
  const url = new URL(request.url);
1539
+ let webSocket;
1532
1540
  if (url.pathname === INIT_PATH) {
1533
- const { 0: client, 1: server } = new WebSocketPair();
1534
1541
  try {
1535
- await createModuleRunner(this.env, server);
1542
+ const viteDevMetadata = getViteDevMetadata(request);
1543
+ entryPath = viteDevMetadata.entryPath;
1544
+ const { 0: client, 1: server } = new WebSocketPair();
1545
+ webSocket = client;
1546
+ await createModuleRunner(this.env, server, viteDevMetadata.root);
1536
1547
  } catch (e) {
1537
1548
  return new Response(
1538
1549
  e instanceof Error ? e.message : JSON.stringify(e),
1539
1550
  { status: 500 }
1540
1551
  );
1541
1552
  }
1542
- return new Response(null, { status: 101, webSocket: client });
1553
+ return new Response(null, {
1554
+ status: 101,
1555
+ webSocket
1556
+ });
1543
1557
  }
1544
1558
  }
1545
1559
  const entrypointValue = await getWorkerEntryExport(entryPath, entrypoint);
@@ -1579,7 +1593,6 @@ function createWorkerEntrypointWrapper(entrypoint) {
1579
1593
  var kInstance = Symbol("kInstance");
1580
1594
  var kEnsureInstance = Symbol("kEnsureInstance");
1581
1595
  async function getDurableObjectRpcProperty(className, key) {
1582
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1583
1596
  const { ctor, instance } = await this[kEnsureInstance]();
1584
1597
  if (!(instance instanceof DurableObject)) {
1585
1598
  throw new TypeError(
@@ -1616,7 +1629,6 @@ function createDurableObjectWrapper(className) {
1616
1629
  });
1617
1630
  }
1618
1631
  async [kEnsureInstance]() {
1619
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1620
1632
  const ctor = await getWorkerEntryExport(
1621
1633
  entryPath,
1622
1634
  className
@@ -1638,7 +1650,6 @@ function createDurableObjectWrapper(className) {
1638
1650
  }
1639
1651
  for (const key of DURABLE_OBJECT_KEYS) {
1640
1652
  Wrapper.prototype[key] = async function(...args) {
1641
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1642
1653
  const { instance } = await this[kEnsureInstance]();
1643
1654
  const maybeFn = instance[key];
1644
1655
  if (typeof maybeFn !== "function") {
@@ -1656,7 +1667,6 @@ function createWorkflowEntrypointWrapper(className) {
1656
1667
  }
1657
1668
  for (const key of WORKFLOW_ENTRYPOINT_KEYS) {
1658
1669
  Wrapper.prototype[key] = async function(...args) {
1659
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1660
1670
  const ctor = await getWorkerEntryExport(
1661
1671
  entryPath,
1662
1672
  className
@@ -1679,6 +1689,34 @@ function createWorkflowEntrypointWrapper(className) {
1679
1689
  }
1680
1690
  return Wrapper;
1681
1691
  }
1692
+ function getViteDevMetadata(request) {
1693
+ const viteDevMetadataHeader = request.headers.get(VITE_DEV_METADATA_HEADER);
1694
+ if (viteDevMetadataHeader === null) {
1695
+ throw new Error(
1696
+ "Unexpected internal error, vite dev metadata header not set"
1697
+ );
1698
+ }
1699
+ let parsedViteDevMetadataHeader;
1700
+ try {
1701
+ parsedViteDevMetadataHeader = JSON.parse(viteDevMetadataHeader);
1702
+ } catch {
1703
+ throw new Error(
1704
+ `Unexpected internal error, vite dev metadata header JSON parsing failed, value = ${viteDevMetadataHeader}`
1705
+ );
1706
+ }
1707
+ const { root, entryPath: entryPath2 } = parsedViteDevMetadataHeader;
1708
+ if (root === void 0) {
1709
+ throw new Error(
1710
+ "Unexpected internal error, vite dev metadata header doesn't contain a root value"
1711
+ );
1712
+ }
1713
+ if (entryPath2 === void 0) {
1714
+ throw new Error(
1715
+ "Unexpected internal error, vite dev metadata header doesn't contain an entryPath value"
1716
+ );
1717
+ }
1718
+ return { root, entryPath: entryPath2 };
1719
+ }
1682
1720
  export {
1683
1721
  createDurableObjectWrapper,
1684
1722
  createWorkerEntrypointWrapper,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/vite-plugin",
3
- "version": "0.0.0-ad58eaaca",
3
+ "version": "0.0.0-ad774e49b",
4
4
  "description": "Cloudflare plugin for Vite",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -34,25 +34,32 @@
34
34
  ],
35
35
  "dependencies": {
36
36
  "@hattip/adapter-node": "^0.0.49",
37
- "unenv": "npm:unenv-nightly@2.0.0-20241218-183400-5d6aec3",
38
- "ws": "^8.18.0",
39
- "miniflare": "0.0.0-ad58eaaca"
37
+ "picocolors": "^1.1.1",
38
+ "tinyglobby": "^0.2.12",
39
+ "unenv": "2.0.0-rc.15",
40
+ "ws": "8.18.0",
41
+ "@cloudflare/unenv-preset": "0.0.0-ad774e49b",
42
+ "wrangler": "0.0.0-ad774e49b",
43
+ "miniflare": "0.0.0-ad774e49b"
40
44
  },
41
45
  "devDependencies": {
42
- "@cloudflare/workers-types": "^4.20250121.0",
46
+ "@cloudflare/workers-types": "^4.20250319.0",
43
47
  "@types/node": "^22.10.1",
44
48
  "@types/ws": "^8.5.13",
45
49
  "magic-string": "^0.30.12",
50
+ "mlly": "^1.7.4",
46
51
  "tsup": "8.3.0",
47
52
  "typescript": "^5.7.2",
48
- "vite": "^6.0.7",
49
- "@cloudflare/workers-shared": "0.0.0-ad58eaaca",
50
- "wrangler": "0.0.0-ad58eaaca",
53
+ "undici": "^5.28.5",
54
+ "vite": "^6.1.0",
55
+ "vitest": "~3.0.8",
56
+ "@cloudflare/mock-npm-registry": "0.0.0",
57
+ "@cloudflare/workers-shared": "0.0.0-ad774e49b",
51
58
  "@cloudflare/workers-tsconfig": "0.0.0"
52
59
  },
53
60
  "peerDependencies": {
54
- "vite": "^6.0.7",
55
- "wrangler": "^3.101.0"
61
+ "vite": "^6.1.0",
62
+ "wrangler": "^3.101.0 || ^4.0.0"
56
63
  },
57
64
  "publishConfig": {
58
65
  "access": "public"
@@ -64,7 +71,9 @@
64
71
  "build": "tsup",
65
72
  "check:type": "tsc --build",
66
73
  "dev": "tsup --watch",
67
- "test": "vitest",
68
- "test:ci": "vitest run"
74
+ "test": "vitest run",
75
+ "test:ci": "pnpm test",
76
+ "test:e2e": "vitest run -c e2e/vitest.config.ts",
77
+ "test:watch": "vitest"
69
78
  }
70
79
  }