@cloudflare/vite-plugin 0.0.0-47f56a2a4 → 0.0.0-485cd0867
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 +15 -471
- package/dist/asset-workers/asset-worker.js +5614 -1903
- package/dist/asset-workers/router-worker.js +4277 -1611
- package/dist/index.d.ts +8 -1
- package/dist/index.js +7520 -2086
- package/dist/runner-worker/index.js +73 -43
- package/package.json +16 -13
|
@@ -6,26 +6,31 @@ import {
|
|
|
6
6
|
} from "cloudflare:workers";
|
|
7
7
|
|
|
8
8
|
// src/constants.ts
|
|
9
|
-
var
|
|
9
|
+
var ADDITIONAL_MODULE_TYPES = [
|
|
10
|
+
"CompiledWasm",
|
|
11
|
+
"Data",
|
|
12
|
+
"Text"
|
|
13
|
+
];
|
|
14
|
+
var kRequestType = Symbol("kRequestType");
|
|
10
15
|
|
|
11
16
|
// src/shared.ts
|
|
12
17
|
var UNKNOWN_HOST = "http://localhost";
|
|
13
18
|
var INIT_PATH = "/__vite_plugin_cloudflare_init__";
|
|
14
|
-
var
|
|
19
|
+
var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)__CLOUDFLARE_MODULE__`;
|
|
20
|
+
var additionalModuleRE = new RegExp(ADDITIONAL_MODULE_PATTERN);
|
|
21
|
+
var additionalModuleGlobalRE = new RegExp(
|
|
22
|
+
ADDITIONAL_MODULE_PATTERN,
|
|
23
|
+
"g"
|
|
24
|
+
);
|
|
25
|
+
var VITE_DEV_METADATA_HEADER = "__VITE_DEV_METADATA__";
|
|
15
26
|
|
|
16
27
|
// src/runner-worker/env.ts
|
|
17
28
|
function stripInternalEnv(internalEnv) {
|
|
18
|
-
const {
|
|
19
|
-
__VITE_ROOT__,
|
|
20
|
-
__VITE_ENTRY_PATH__,
|
|
21
|
-
__VITE_INVOKE_MODULE__,
|
|
22
|
-
__VITE_UNSAFE_EVAL__,
|
|
23
|
-
...userEnv
|
|
24
|
-
} = internalEnv;
|
|
29
|
+
const { __VITE_INVOKE_MODULE__, __VITE_UNSAFE_EVAL__, ...userEnv } = internalEnv;
|
|
25
30
|
return userEnv;
|
|
26
31
|
}
|
|
27
32
|
|
|
28
|
-
// ../../node_modules/.pnpm/vite@6.1.0_@types+node@
|
|
33
|
+
// ../../node_modules/.pnpm/vite@6.1.0_@types+node@20.17.32_jiti@2.4.2_lightningcss@1.29.2/node_modules/vite/dist/node/module-runner.js
|
|
29
34
|
var VALID_ID_PREFIX = "/@id/";
|
|
30
35
|
var NULL_BYTE_PLACEHOLDER = "__x00__";
|
|
31
36
|
var SOURCEMAPPING_URL = "sourceMa";
|
|
@@ -1356,7 +1361,7 @@ function exportAll(exports, sourceModule) {
|
|
|
1356
1361
|
|
|
1357
1362
|
// src/runner-worker/module-runner.ts
|
|
1358
1363
|
var moduleRunner;
|
|
1359
|
-
async function createModuleRunner(env, webSocket) {
|
|
1364
|
+
async function createModuleRunner(env, webSocket, viteRoot) {
|
|
1360
1365
|
if (moduleRunner) {
|
|
1361
1366
|
throw new Error("Runner already initialized");
|
|
1362
1367
|
}
|
|
@@ -1368,7 +1373,7 @@ async function createModuleRunner(env, webSocket) {
|
|
|
1368
1373
|
});
|
|
1369
1374
|
moduleRunner = new ModuleRunner(
|
|
1370
1375
|
{
|
|
1371
|
-
root:
|
|
1376
|
+
root: viteRoot,
|
|
1372
1377
|
sourcemapInterceptor: "prepareStackTrace",
|
|
1373
1378
|
transport: {
|
|
1374
1379
|
...transport,
|
|
@@ -1390,13 +1395,6 @@ async function createModuleRunner(env, webSocket) {
|
|
|
1390
1395
|
},
|
|
1391
1396
|
{
|
|
1392
1397
|
async runInlinedModule(context, transformed, module) {
|
|
1393
|
-
if (module.file.includes("/node_modules") && !module.file.includes("/node_modules/.vite")) {
|
|
1394
|
-
throw new Error(
|
|
1395
|
-
`[Error] Trying to import non-prebundled module (only prebundled modules are allowed): ${module.id}
|
|
1396
|
-
|
|
1397
|
-
(have you excluded the module via \`optimizeDeps.exclude\`?)`
|
|
1398
|
-
);
|
|
1399
|
-
}
|
|
1400
1398
|
const codeDefinition = `'use strict';async (${Object.keys(context).join(
|
|
1401
1399
|
","
|
|
1402
1400
|
)})=>{{`;
|
|
@@ -1413,13 +1411,14 @@ async function createModuleRunner(env, webSocket) {
|
|
|
1413
1411
|
}
|
|
1414
1412
|
},
|
|
1415
1413
|
async runExternalModule(filepath) {
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1414
|
+
if (filepath === "cloudflare:workers") {
|
|
1415
|
+
const originalCloudflareWorkersModule = await import("cloudflare:workers");
|
|
1416
|
+
return Object.seal({
|
|
1417
|
+
...originalCloudflareWorkersModule,
|
|
1418
|
+
env: stripInternalEnv(
|
|
1419
|
+
originalCloudflareWorkersModule.env
|
|
1420
|
+
)
|
|
1421
|
+
});
|
|
1423
1422
|
}
|
|
1424
1423
|
filepath = filepath.replace(/^file:\/\//, "");
|
|
1425
1424
|
return import(filepath);
|
|
@@ -1437,22 +1436,24 @@ async function getWorkerEntryExport(path, entrypoint) {
|
|
|
1437
1436
|
}
|
|
1438
1437
|
|
|
1439
1438
|
// src/runner-worker/index.ts
|
|
1439
|
+
var IGNORED_KEYS = ["self", "tailStream"];
|
|
1440
1440
|
var WORKER_ENTRYPOINT_KEYS = [
|
|
1441
1441
|
"fetch",
|
|
1442
|
+
"queue",
|
|
1442
1443
|
"tail",
|
|
1444
|
+
"test",
|
|
1443
1445
|
"trace",
|
|
1444
|
-
"scheduled"
|
|
1445
|
-
"queue",
|
|
1446
|
-
"test"
|
|
1446
|
+
"scheduled"
|
|
1447
1447
|
];
|
|
1448
1448
|
var DURABLE_OBJECT_KEYS = [
|
|
1449
|
-
"fetch",
|
|
1450
1449
|
"alarm",
|
|
1451
|
-
"
|
|
1450
|
+
"fetch",
|
|
1452
1451
|
"webSocketClose",
|
|
1453
|
-
"webSocketError"
|
|
1452
|
+
"webSocketError",
|
|
1453
|
+
"webSocketMessage"
|
|
1454
1454
|
];
|
|
1455
1455
|
var WORKFLOW_ENTRYPOINT_KEYS = ["run"];
|
|
1456
|
+
var entryPath = "";
|
|
1456
1457
|
function getRpcProperty(ctor, instance, key) {
|
|
1457
1458
|
const prototypeHasKey = Reflect.has(ctor.prototype, key);
|
|
1458
1459
|
if (!prototypeHasKey) {
|
|
@@ -1485,7 +1486,6 @@ function getRpcPropertyCallableThenable(key, property) {
|
|
|
1485
1486
|
return fn;
|
|
1486
1487
|
}
|
|
1487
1488
|
async function getWorkerEntrypointRpcProperty(entrypoint, key) {
|
|
1488
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1489
1489
|
const ctor = await getWorkerEntryExport(
|
|
1490
1490
|
entryPath,
|
|
1491
1491
|
entrypoint
|
|
@@ -1515,7 +1515,7 @@ function createWorkerEntrypointWrapper(entrypoint) {
|
|
|
1515
1515
|
if (value !== void 0) {
|
|
1516
1516
|
return value;
|
|
1517
1517
|
}
|
|
1518
|
-
if (key === "
|
|
1518
|
+
if (typeof key === "symbol" || IGNORED_KEYS.includes(key) || DURABLE_OBJECT_KEYS.includes(key)) {
|
|
1519
1519
|
return;
|
|
1520
1520
|
}
|
|
1521
1521
|
const property = getWorkerEntrypointRpcProperty.call(
|
|
@@ -1530,21 +1530,27 @@ function createWorkerEntrypointWrapper(entrypoint) {
|
|
|
1530
1530
|
}
|
|
1531
1531
|
for (const key of WORKER_ENTRYPOINT_KEYS) {
|
|
1532
1532
|
Wrapper.prototype[key] = async function(arg) {
|
|
1533
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1534
1533
|
if (key === "fetch") {
|
|
1535
1534
|
const request = arg;
|
|
1536
1535
|
const url = new URL(request.url);
|
|
1536
|
+
let webSocket;
|
|
1537
1537
|
if (url.pathname === INIT_PATH) {
|
|
1538
|
-
const { 0: client, 1: server } = new WebSocketPair();
|
|
1539
1538
|
try {
|
|
1540
|
-
|
|
1539
|
+
const viteDevMetadata = getViteDevMetadata(request);
|
|
1540
|
+
entryPath = viteDevMetadata.entryPath;
|
|
1541
|
+
const { 0: client, 1: server } = new WebSocketPair();
|
|
1542
|
+
webSocket = client;
|
|
1543
|
+
await createModuleRunner(this.env, server, viteDevMetadata.root);
|
|
1541
1544
|
} catch (e) {
|
|
1542
1545
|
return new Response(
|
|
1543
1546
|
e instanceof Error ? e.message : JSON.stringify(e),
|
|
1544
1547
|
{ status: 500 }
|
|
1545
1548
|
);
|
|
1546
1549
|
}
|
|
1547
|
-
return new Response(null, {
|
|
1550
|
+
return new Response(null, {
|
|
1551
|
+
status: 101,
|
|
1552
|
+
webSocket
|
|
1553
|
+
});
|
|
1548
1554
|
}
|
|
1549
1555
|
}
|
|
1550
1556
|
const entrypointValue = await getWorkerEntryExport(entryPath, entrypoint);
|
|
@@ -1584,7 +1590,6 @@ function createWorkerEntrypointWrapper(entrypoint) {
|
|
|
1584
1590
|
var kInstance = Symbol("kInstance");
|
|
1585
1591
|
var kEnsureInstance = Symbol("kEnsureInstance");
|
|
1586
1592
|
async function getDurableObjectRpcProperty(className, key) {
|
|
1587
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1588
1593
|
const { ctor, instance } = await this[kEnsureInstance]();
|
|
1589
1594
|
if (!(instance instanceof DurableObject)) {
|
|
1590
1595
|
throw new TypeError(
|
|
@@ -1608,7 +1613,7 @@ function createDurableObjectWrapper(className) {
|
|
|
1608
1613
|
if (value !== void 0) {
|
|
1609
1614
|
return value;
|
|
1610
1615
|
}
|
|
1611
|
-
if (key === "
|
|
1616
|
+
if (typeof key === "symbol" || IGNORED_KEYS.includes(key) || WORKER_ENTRYPOINT_KEYS.includes(key)) {
|
|
1612
1617
|
return;
|
|
1613
1618
|
}
|
|
1614
1619
|
const property = getDurableObjectRpcProperty.call(
|
|
@@ -1621,7 +1626,6 @@ function createDurableObjectWrapper(className) {
|
|
|
1621
1626
|
});
|
|
1622
1627
|
}
|
|
1623
1628
|
async [kEnsureInstance]() {
|
|
1624
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1625
1629
|
const ctor = await getWorkerEntryExport(
|
|
1626
1630
|
entryPath,
|
|
1627
1631
|
className
|
|
@@ -1643,7 +1647,6 @@ function createDurableObjectWrapper(className) {
|
|
|
1643
1647
|
}
|
|
1644
1648
|
for (const key of DURABLE_OBJECT_KEYS) {
|
|
1645
1649
|
Wrapper.prototype[key] = async function(...args) {
|
|
1646
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1647
1650
|
const { instance } = await this[kEnsureInstance]();
|
|
1648
1651
|
const maybeFn = instance[key];
|
|
1649
1652
|
if (typeof maybeFn !== "function") {
|
|
@@ -1661,7 +1664,6 @@ function createWorkflowEntrypointWrapper(className) {
|
|
|
1661
1664
|
}
|
|
1662
1665
|
for (const key of WORKFLOW_ENTRYPOINT_KEYS) {
|
|
1663
1666
|
Wrapper.prototype[key] = async function(...args) {
|
|
1664
|
-
const entryPath = this.env.__VITE_ENTRY_PATH__;
|
|
1665
1667
|
const ctor = await getWorkerEntryExport(
|
|
1666
1668
|
entryPath,
|
|
1667
1669
|
className
|
|
@@ -1684,6 +1686,34 @@ function createWorkflowEntrypointWrapper(className) {
|
|
|
1684
1686
|
}
|
|
1685
1687
|
return Wrapper;
|
|
1686
1688
|
}
|
|
1689
|
+
function getViteDevMetadata(request) {
|
|
1690
|
+
const viteDevMetadataHeader = request.headers.get(VITE_DEV_METADATA_HEADER);
|
|
1691
|
+
if (viteDevMetadataHeader === null) {
|
|
1692
|
+
throw new Error(
|
|
1693
|
+
"Unexpected internal error, vite dev metadata header not set"
|
|
1694
|
+
);
|
|
1695
|
+
}
|
|
1696
|
+
let parsedViteDevMetadataHeader;
|
|
1697
|
+
try {
|
|
1698
|
+
parsedViteDevMetadataHeader = JSON.parse(viteDevMetadataHeader);
|
|
1699
|
+
} catch {
|
|
1700
|
+
throw new Error(
|
|
1701
|
+
`Unexpected internal error, vite dev metadata header JSON parsing failed, value = ${viteDevMetadataHeader}`
|
|
1702
|
+
);
|
|
1703
|
+
}
|
|
1704
|
+
const { root, entryPath: entryPath2 } = parsedViteDevMetadataHeader;
|
|
1705
|
+
if (root === void 0) {
|
|
1706
|
+
throw new Error(
|
|
1707
|
+
"Unexpected internal error, vite dev metadata header doesn't contain a root value"
|
|
1708
|
+
);
|
|
1709
|
+
}
|
|
1710
|
+
if (entryPath2 === void 0) {
|
|
1711
|
+
throw new Error(
|
|
1712
|
+
"Unexpected internal error, vite dev metadata header doesn't contain an entryPath value"
|
|
1713
|
+
);
|
|
1714
|
+
}
|
|
1715
|
+
return { root, entryPath: entryPath2 };
|
|
1716
|
+
}
|
|
1687
1717
|
export {
|
|
1688
1718
|
createDurableObjectWrapper,
|
|
1689
1719
|
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-485cd0867",
|
|
4
4
|
"description": "Cloudflare plugin for Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -33,31 +33,34 @@
|
|
|
33
33
|
"dist"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@cloudflare/unenv-preset": "
|
|
37
|
-
"@
|
|
38
|
-
"
|
|
36
|
+
"@cloudflare/unenv-preset": "2.3.2",
|
|
37
|
+
"@mjackson/node-fetch-server": "^0.6.1",
|
|
38
|
+
"@rollup/plugin-replace": "^6.0.1",
|
|
39
|
+
"get-port": "^7.1.0",
|
|
40
|
+
"picocolors": "^1.1.1",
|
|
41
|
+
"tinyglobby": "^0.2.12",
|
|
42
|
+
"unenv": "2.0.0-rc.17",
|
|
39
43
|
"ws": "8.18.0",
|
|
40
|
-
"miniflare": "0.0.0-
|
|
44
|
+
"miniflare": "0.0.0-485cd0867",
|
|
45
|
+
"wrangler": "0.0.0-485cd0867"
|
|
41
46
|
},
|
|
42
47
|
"devDependencies": {
|
|
43
|
-
"@cloudflare/workers-types": "^4.
|
|
48
|
+
"@cloudflare/workers-types": "^4.20250604.0",
|
|
44
49
|
"@types/node": "^22.10.1",
|
|
45
50
|
"@types/ws": "^8.5.13",
|
|
46
51
|
"magic-string": "^0.30.12",
|
|
47
52
|
"mlly": "^1.7.4",
|
|
48
53
|
"tsup": "8.3.0",
|
|
49
54
|
"typescript": "^5.7.2",
|
|
50
|
-
"undici": "^5.28.5",
|
|
51
55
|
"vite": "^6.1.0",
|
|
52
|
-
"vitest": "~3.
|
|
53
|
-
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
56
|
+
"vitest": "~3.1.1",
|
|
54
57
|
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
55
|
-
"@cloudflare/
|
|
56
|
-
"
|
|
58
|
+
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
59
|
+
"@cloudflare/workers-shared": "0.0.0-485cd0867"
|
|
57
60
|
},
|
|
58
61
|
"peerDependencies": {
|
|
59
62
|
"vite": "^6.1.0",
|
|
60
|
-
"wrangler": "^3.101.0"
|
|
63
|
+
"wrangler": "^3.101.0 || ^4.0.0"
|
|
61
64
|
},
|
|
62
65
|
"publishConfig": {
|
|
63
66
|
"access": "public"
|
|
@@ -70,7 +73,7 @@
|
|
|
70
73
|
"check:type": "tsc --build",
|
|
71
74
|
"dev": "tsup --watch",
|
|
72
75
|
"test": "vitest run",
|
|
73
|
-
"test:ci": "pnpm test
|
|
76
|
+
"test:ci": "pnpm test",
|
|
74
77
|
"test:e2e": "vitest run -c e2e/vitest.config.ts",
|
|
75
78
|
"test:watch": "vitest"
|
|
76
79
|
}
|