@cloudflare/vite-plugin 0.0.0-806cee846 → 0.0.0-8278db5c8

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,22 @@ import {
5
5
  WorkflowEntrypoint
6
6
  } from "cloudflare:workers";
7
7
 
8
+ // src/constants.ts
9
+ var MODULE_TYPES = ["CompiledWasm"];
10
+
8
11
  // src/shared.ts
9
12
  var UNKNOWN_HOST = "http://localhost";
10
13
  var INIT_PATH = "/__vite_plugin_cloudflare_init__";
14
+ var MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${MODULE_TYPES.join("|")})__(.*?)__`;
15
+ var VITE_DEV_METADATA_HEADER = "__VITE_DEV_METADATA__";
11
16
 
12
17
  // src/runner-worker/env.ts
13
18
  function stripInternalEnv(internalEnv) {
14
- const {
15
- __VITE_ROOT__,
16
- __VITE_ENTRY_PATH__,
17
- __VITE_INVOKE_MODULE__,
18
- __VITE_UNSAFE_EVAL__,
19
- ...userEnv
20
- } = internalEnv;
19
+ const { __VITE_INVOKE_MODULE__, __VITE_UNSAFE_EVAL__, ...userEnv } = internalEnv;
21
20
  return userEnv;
22
21
  }
23
22
 
24
- // ../../node_modules/.pnpm/vite@6.0.7_@types+node@18.19.59_jiti@2.4.2/node_modules/vite/dist/node/module-runner.js
23
+ // ../../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
24
  var VALID_ID_PREFIX = "/@id/";
26
25
  var NULL_BYTE_PLACEHOLDER = "__x00__";
27
26
  var SOURCEMAPPING_URL = "sourceMa";
@@ -1352,7 +1351,7 @@ function exportAll(exports, sourceModule) {
1352
1351
 
1353
1352
  // src/runner-worker/module-runner.ts
1354
1353
  var moduleRunner;
1355
- async function createModuleRunner(env, webSocket) {
1354
+ async function createModuleRunner(env, webSocket, viteRoot) {
1356
1355
  if (moduleRunner) {
1357
1356
  throw new Error("Runner already initialized");
1358
1357
  }
@@ -1364,7 +1363,7 @@ async function createModuleRunner(env, webSocket) {
1364
1363
  });
1365
1364
  moduleRunner = new ModuleRunner(
1366
1365
  {
1367
- root: env.__VITE_ROOT__,
1366
+ root: viteRoot,
1368
1367
  sourcemapInterceptor: "prepareStackTrace",
1369
1368
  transport: {
1370
1369
  ...transport,
@@ -1409,7 +1408,8 @@ async function createModuleRunner(env, webSocket) {
1409
1408
  }
1410
1409
  },
1411
1410
  async runExternalModule(filepath) {
1412
- if (filepath.includes("/node_modules") && !filepath.includes("/node_modules/.vite")) {
1411
+ const moduleRE = new RegExp(MODULE_PATTERN);
1412
+ if (!moduleRE.test(filepath) && filepath.includes("/node_modules") && !filepath.includes("/node_modules/.vite")) {
1413
1413
  throw new Error(
1414
1414
  `[Error] Trying to import non-prebundled module (only prebundled modules are allowed): ${filepath}
1415
1415
 
@@ -1448,6 +1448,7 @@ var DURABLE_OBJECT_KEYS = [
1448
1448
  "webSocketError"
1449
1449
  ];
1450
1450
  var WORKFLOW_ENTRYPOINT_KEYS = ["run"];
1451
+ var entryPath = "";
1451
1452
  function getRpcProperty(ctor, instance, key) {
1452
1453
  const prototypeHasKey = Reflect.has(ctor.prototype, key);
1453
1454
  if (!prototypeHasKey) {
@@ -1480,7 +1481,6 @@ function getRpcPropertyCallableThenable(key, property) {
1480
1481
  return fn;
1481
1482
  }
1482
1483
  async function getWorkerEntrypointRpcProperty(entrypoint, key) {
1483
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1484
1484
  const ctor = await getWorkerEntryExport(
1485
1485
  entryPath,
1486
1486
  entrypoint
@@ -1525,14 +1525,27 @@ function createWorkerEntrypointWrapper(entrypoint) {
1525
1525
  }
1526
1526
  for (const key of WORKER_ENTRYPOINT_KEYS) {
1527
1527
  Wrapper.prototype[key] = async function(arg) {
1528
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1529
1528
  if (key === "fetch") {
1530
1529
  const request = arg;
1531
1530
  const url = new URL(request.url);
1531
+ let webSocket;
1532
1532
  if (url.pathname === INIT_PATH) {
1533
- const { 0: client, 1: server } = new WebSocketPair();
1534
- createModuleRunner(this.env, server);
1535
- return new Response(null, { status: 101, webSocket: client });
1533
+ try {
1534
+ const viteDevMetadata = getViteDevMetadata(request);
1535
+ entryPath = viteDevMetadata.entryPath;
1536
+ const { 0: client, 1: server } = new WebSocketPair();
1537
+ webSocket = client;
1538
+ await createModuleRunner(this.env, server, viteDevMetadata.root);
1539
+ } catch (e) {
1540
+ return new Response(
1541
+ e instanceof Error ? e.message : JSON.stringify(e),
1542
+ { status: 500 }
1543
+ );
1544
+ }
1545
+ return new Response(null, {
1546
+ status: 101,
1547
+ webSocket
1548
+ });
1536
1549
  }
1537
1550
  }
1538
1551
  const entrypointValue = await getWorkerEntryExport(entryPath, entrypoint);
@@ -1572,7 +1585,6 @@ function createWorkerEntrypointWrapper(entrypoint) {
1572
1585
  var kInstance = Symbol("kInstance");
1573
1586
  var kEnsureInstance = Symbol("kEnsureInstance");
1574
1587
  async function getDurableObjectRpcProperty(className, key) {
1575
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1576
1588
  const { ctor, instance } = await this[kEnsureInstance]();
1577
1589
  if (!(instance instanceof DurableObject)) {
1578
1590
  throw new TypeError(
@@ -1609,7 +1621,6 @@ function createDurableObjectWrapper(className) {
1609
1621
  });
1610
1622
  }
1611
1623
  async [kEnsureInstance]() {
1612
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1613
1624
  const ctor = await getWorkerEntryExport(
1614
1625
  entryPath,
1615
1626
  className
@@ -1631,7 +1642,6 @@ function createDurableObjectWrapper(className) {
1631
1642
  }
1632
1643
  for (const key of DURABLE_OBJECT_KEYS) {
1633
1644
  Wrapper.prototype[key] = async function(...args) {
1634
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1635
1645
  const { instance } = await this[kEnsureInstance]();
1636
1646
  const maybeFn = instance[key];
1637
1647
  if (typeof maybeFn !== "function") {
@@ -1649,7 +1659,6 @@ function createWorkflowEntrypointWrapper(className) {
1649
1659
  }
1650
1660
  for (const key of WORKFLOW_ENTRYPOINT_KEYS) {
1651
1661
  Wrapper.prototype[key] = async function(...args) {
1652
- const entryPath = this.env.__VITE_ENTRY_PATH__;
1653
1662
  const ctor = await getWorkerEntryExport(
1654
1663
  entryPath,
1655
1664
  className
@@ -1672,6 +1681,34 @@ function createWorkflowEntrypointWrapper(className) {
1672
1681
  }
1673
1682
  return Wrapper;
1674
1683
  }
1684
+ function getViteDevMetadata(request) {
1685
+ const viteDevMetadataHeader = request.headers.get(VITE_DEV_METADATA_HEADER);
1686
+ if (viteDevMetadataHeader === null) {
1687
+ throw new Error(
1688
+ "Unexpected internal error, vite dev metadata header not set"
1689
+ );
1690
+ }
1691
+ let parsedViteDevMetadataHeader;
1692
+ try {
1693
+ parsedViteDevMetadataHeader = JSON.parse(viteDevMetadataHeader);
1694
+ } catch {
1695
+ throw new Error(
1696
+ `Unexpected internal error, vite dev metadata header JSON parsing failed, value = ${viteDevMetadataHeader}`
1697
+ );
1698
+ }
1699
+ const { root, entryPath: entryPath2 } = parsedViteDevMetadataHeader;
1700
+ if (root === void 0) {
1701
+ throw new Error(
1702
+ "Unexpected internal error, vite dev metadata header doesn't contain a root value"
1703
+ );
1704
+ }
1705
+ if (entryPath2 === void 0) {
1706
+ throw new Error(
1707
+ "Unexpected internal error, vite dev metadata header doesn't contain an entryPath value"
1708
+ );
1709
+ }
1710
+ return { root, entryPath: entryPath2 };
1711
+ }
1675
1712
  export {
1676
1713
  createDurableObjectWrapper,
1677
1714
  createWorkerEntrypointWrapper,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudflare/vite-plugin",
3
- "version": "0.0.0-806cee846",
3
+ "version": "0.0.0-8278db5c8",
4
4
  "description": "Cloudflare plugin for Vite",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -33,26 +33,32 @@
33
33
  "dist"
34
34
  ],
35
35
  "dependencies": {
36
+ "@cloudflare/unenv-preset": "1.1.1",
36
37
  "@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-806cee846"
38
+ "tinyglobby": "^0.2.12",
39
+ "unenv": "2.0.0-rc.1",
40
+ "ws": "8.18.0",
41
+ "miniflare": "0.0.0-8278db5c8",
42
+ "wrangler": "0.0.0-8278db5c8"
40
43
  },
41
44
  "devDependencies": {
42
- "@cloudflare/workers-types": "^4.20241230.0",
45
+ "@cloudflare/workers-types": "^4.20250317.0",
43
46
  "@types/node": "^22.10.1",
44
47
  "@types/ws": "^8.5.13",
45
48
  "magic-string": "^0.30.12",
46
- "tsup": "^8.3.0",
49
+ "mlly": "^1.7.4",
50
+ "tsup": "8.3.0",
47
51
  "typescript": "^5.7.2",
48
- "vite": "^6.0.7",
49
- "wrangler": "0.0.0-806cee846",
50
- "@cloudflare/workers-shared": "0.0.0-806cee846",
52
+ "undici": "^5.28.5",
53
+ "vite": "^6.1.0",
54
+ "vitest": "~3.0.5",
55
+ "@cloudflare/mock-npm-registry": "0.0.0",
56
+ "@cloudflare/workers-shared": "0.0.0-8278db5c8",
51
57
  "@cloudflare/workers-tsconfig": "0.0.0"
52
58
  },
53
59
  "peerDependencies": {
54
- "vite": "^6.0.7",
55
- "wrangler": "^0.0.0-806cee846"
60
+ "vite": "^6.1.0",
61
+ "wrangler": "^3.101.0 || ^4.0.0"
56
62
  },
57
63
  "publishConfig": {
58
64
  "access": "public"
@@ -63,8 +69,10 @@
63
69
  "scripts": {
64
70
  "build": "tsup",
65
71
  "check:type": "tsc --build",
66
- "test": "vitest",
67
- "test:ci": "vitest run",
68
- "watch": "tsup --watch"
72
+ "dev": "tsup --watch",
73
+ "test": "vitest run",
74
+ "test:ci": "pnpm test",
75
+ "test:e2e": "vitest run -c e2e/vitest.config.ts",
76
+ "test:watch": "vitest"
69
77
  }
70
78
  }