@cloudflare/vite-plugin 0.0.0-e62b097bb → 0.0.0-e9106dfa5
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/README.md +70 -1
- package/dist/asset-workers/asset-worker.js +1638 -1750
- package/dist/asset-workers/router-worker.js +1277 -1585
- package/dist/index.d.ts +7 -2
- package/dist/index.js +12881 -624
- package/dist/runner-worker/index.js +67 -20
- package/package.json +22 -13
|
@@ -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.
|
|
32
|
+
// ../../node_modules/.pnpm/vite@6.1.0_@types+node@18.19.76_jiti@2.4.2_lightningcss@1.29.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:
|
|
1375
|
+
root: viteRoot,
|
|
1368
1376
|
sourcemapInterceptor: "prepareStackTrace",
|
|
1369
1377
|
transport: {
|
|
1370
1378
|
...transport,
|
|
@@ -1409,7 +1417,16 @@ async function createModuleRunner(env, webSocket) {
|
|
|
1409
1417
|
}
|
|
1410
1418
|
},
|
|
1411
1419
|
async runExternalModule(filepath) {
|
|
1412
|
-
if (filepath
|
|
1420
|
+
if (filepath === "cloudflare:workers") {
|
|
1421
|
+
const originalCloudflareWorkersModule = await import("cloudflare:workers");
|
|
1422
|
+
return Object.seal({
|
|
1423
|
+
...originalCloudflareWorkersModule,
|
|
1424
|
+
env: stripInternalEnv(
|
|
1425
|
+
originalCloudflareWorkersModule.env
|
|
1426
|
+
)
|
|
1427
|
+
});
|
|
1428
|
+
}
|
|
1429
|
+
if (!additionalModuleRE.test(filepath) && filepath.includes("/node_modules") && !filepath.includes("/node_modules/.vite")) {
|
|
1413
1430
|
throw new Error(
|
|
1414
1431
|
`[Error] Trying to import non-prebundled module (only prebundled modules are allowed): ${filepath}
|
|
1415
1432
|
|
|
@@ -1448,6 +1465,7 @@ var DURABLE_OBJECT_KEYS = [
|
|
|
1448
1465
|
"webSocketError"
|
|
1449
1466
|
];
|
|
1450
1467
|
var WORKFLOW_ENTRYPOINT_KEYS = ["run"];
|
|
1468
|
+
var entryPath = "";
|
|
1451
1469
|
function getRpcProperty(ctor, instance, key) {
|
|
1452
1470
|
const prototypeHasKey = Reflect.has(ctor.prototype, key);
|
|
1453
1471
|
if (!prototypeHasKey) {
|
|
@@ -1480,7 +1498,6 @@ function getRpcPropertyCallableThenable(key, property) {
|
|
|
1480
1498
|
return fn;
|
|
1481
1499
|
}
|
|
1482
1500
|
async function getWorkerEntrypointRpcProperty(entrypoint, key) {
|
|
1483
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1484
1501
|
const ctor = await getWorkerEntryExport(
|
|
1485
1502
|
entryPath,
|
|
1486
1503
|
entrypoint
|
|
@@ -1525,21 +1542,27 @@ function createWorkerEntrypointWrapper(entrypoint) {
|
|
|
1525
1542
|
}
|
|
1526
1543
|
for (const key of WORKER_ENTRYPOINT_KEYS) {
|
|
1527
1544
|
Wrapper.prototype[key] = async function(arg) {
|
|
1528
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1529
1545
|
if (key === "fetch") {
|
|
1530
1546
|
const request = arg;
|
|
1531
1547
|
const url = new URL(request.url);
|
|
1548
|
+
let webSocket;
|
|
1532
1549
|
if (url.pathname === INIT_PATH) {
|
|
1533
|
-
const { 0: client, 1: server } = new WebSocketPair();
|
|
1534
1550
|
try {
|
|
1535
|
-
|
|
1551
|
+
const viteDevMetadata = getViteDevMetadata(request);
|
|
1552
|
+
entryPath = viteDevMetadata.entryPath;
|
|
1553
|
+
const { 0: client, 1: server } = new WebSocketPair();
|
|
1554
|
+
webSocket = client;
|
|
1555
|
+
await createModuleRunner(this.env, server, viteDevMetadata.root);
|
|
1536
1556
|
} catch (e) {
|
|
1537
1557
|
return new Response(
|
|
1538
1558
|
e instanceof Error ? e.message : JSON.stringify(e),
|
|
1539
1559
|
{ status: 500 }
|
|
1540
1560
|
);
|
|
1541
1561
|
}
|
|
1542
|
-
return new Response(null, {
|
|
1562
|
+
return new Response(null, {
|
|
1563
|
+
status: 101,
|
|
1564
|
+
webSocket
|
|
1565
|
+
});
|
|
1543
1566
|
}
|
|
1544
1567
|
}
|
|
1545
1568
|
const entrypointValue = await getWorkerEntryExport(entryPath, entrypoint);
|
|
@@ -1579,7 +1602,6 @@ function createWorkerEntrypointWrapper(entrypoint) {
|
|
|
1579
1602
|
var kInstance = Symbol("kInstance");
|
|
1580
1603
|
var kEnsureInstance = Symbol("kEnsureInstance");
|
|
1581
1604
|
async function getDurableObjectRpcProperty(className, key) {
|
|
1582
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1583
1605
|
const { ctor, instance } = await this[kEnsureInstance]();
|
|
1584
1606
|
if (!(instance instanceof DurableObject)) {
|
|
1585
1607
|
throw new TypeError(
|
|
@@ -1616,7 +1638,6 @@ function createDurableObjectWrapper(className) {
|
|
|
1616
1638
|
});
|
|
1617
1639
|
}
|
|
1618
1640
|
async [kEnsureInstance]() {
|
|
1619
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1620
1641
|
const ctor = await getWorkerEntryExport(
|
|
1621
1642
|
entryPath,
|
|
1622
1643
|
className
|
|
@@ -1638,7 +1659,6 @@ function createDurableObjectWrapper(className) {
|
|
|
1638
1659
|
}
|
|
1639
1660
|
for (const key of DURABLE_OBJECT_KEYS) {
|
|
1640
1661
|
Wrapper.prototype[key] = async function(...args) {
|
|
1641
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1642
1662
|
const { instance } = await this[kEnsureInstance]();
|
|
1643
1663
|
const maybeFn = instance[key];
|
|
1644
1664
|
if (typeof maybeFn !== "function") {
|
|
@@ -1656,7 +1676,6 @@ function createWorkflowEntrypointWrapper(className) {
|
|
|
1656
1676
|
}
|
|
1657
1677
|
for (const key of WORKFLOW_ENTRYPOINT_KEYS) {
|
|
1658
1678
|
Wrapper.prototype[key] = async function(...args) {
|
|
1659
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1660
1679
|
const ctor = await getWorkerEntryExport(
|
|
1661
1680
|
entryPath,
|
|
1662
1681
|
className
|
|
@@ -1679,6 +1698,34 @@ function createWorkflowEntrypointWrapper(className) {
|
|
|
1679
1698
|
}
|
|
1680
1699
|
return Wrapper;
|
|
1681
1700
|
}
|
|
1701
|
+
function getViteDevMetadata(request) {
|
|
1702
|
+
const viteDevMetadataHeader = request.headers.get(VITE_DEV_METADATA_HEADER);
|
|
1703
|
+
if (viteDevMetadataHeader === null) {
|
|
1704
|
+
throw new Error(
|
|
1705
|
+
"Unexpected internal error, vite dev metadata header not set"
|
|
1706
|
+
);
|
|
1707
|
+
}
|
|
1708
|
+
let parsedViteDevMetadataHeader;
|
|
1709
|
+
try {
|
|
1710
|
+
parsedViteDevMetadataHeader = JSON.parse(viteDevMetadataHeader);
|
|
1711
|
+
} catch {
|
|
1712
|
+
throw new Error(
|
|
1713
|
+
`Unexpected internal error, vite dev metadata header JSON parsing failed, value = ${viteDevMetadataHeader}`
|
|
1714
|
+
);
|
|
1715
|
+
}
|
|
1716
|
+
const { root, entryPath: entryPath2 } = parsedViteDevMetadataHeader;
|
|
1717
|
+
if (root === void 0) {
|
|
1718
|
+
throw new Error(
|
|
1719
|
+
"Unexpected internal error, vite dev metadata header doesn't contain a root value"
|
|
1720
|
+
);
|
|
1721
|
+
}
|
|
1722
|
+
if (entryPath2 === void 0) {
|
|
1723
|
+
throw new Error(
|
|
1724
|
+
"Unexpected internal error, vite dev metadata header doesn't contain an entryPath value"
|
|
1725
|
+
);
|
|
1726
|
+
}
|
|
1727
|
+
return { root, entryPath: entryPath2 };
|
|
1728
|
+
}
|
|
1682
1729
|
export {
|
|
1683
1730
|
createDurableObjectWrapper,
|
|
1684
1731
|
createWorkerEntrypointWrapper,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudflare/vite-plugin",
|
|
3
|
-
"version": "0.0.0-
|
|
3
|
+
"version": "0.0.0-e9106dfa5",
|
|
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
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
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-e9106dfa5",
|
|
42
|
+
"miniflare": "0.0.0-e9106dfa5",
|
|
43
|
+
"wrangler": "0.0.0-e9106dfa5"
|
|
40
44
|
},
|
|
41
45
|
"devDependencies": {
|
|
42
|
-
"@cloudflare/workers-types": "^4.
|
|
46
|
+
"@cloudflare/workers-types": "^4.20250321.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
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"
|
|
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-e9106dfa5",
|
|
58
|
+
"@cloudflare/workers-tsconfig": "0.0.0"
|
|
52
59
|
},
|
|
53
60
|
"peerDependencies": {
|
|
54
|
-
"vite": "^6.0
|
|
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": "
|
|
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
|
}
|