@cloudflare/vite-plugin 0.0.0-3f8f1a148 → 0.0.0-3fcf19b1c
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/dist/asset-workers/asset-worker.js +33 -31
- package/dist/asset-workers/router-worker.js +1089 -990
- package/dist/index.js +85 -48
- package/dist/runner-worker/index.js +2 -2
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -489,7 +489,7 @@ import assert10 from "node:assert";
|
|
|
489
489
|
import * as fs5 from "node:fs";
|
|
490
490
|
import * as fsp2 from "node:fs/promises";
|
|
491
491
|
import * as path9 from "node:path";
|
|
492
|
-
import {
|
|
492
|
+
import { createRequest, sendResponse } from "@mjackson/node-fetch-server";
|
|
493
493
|
import replace from "@rollup/plugin-replace";
|
|
494
494
|
|
|
495
495
|
// ../../node_modules/.pnpm/@jridgewell+sourcemap-codec@1.5.0/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
|
|
@@ -1558,7 +1558,7 @@ var MagicString = class _MagicString {
|
|
|
1558
1558
|
|
|
1559
1559
|
// src/index.ts
|
|
1560
1560
|
import { Miniflare } from "miniflare";
|
|
1561
|
-
import
|
|
1561
|
+
import colors3 from "picocolors";
|
|
1562
1562
|
import * as vite7 from "vite";
|
|
1563
1563
|
|
|
1564
1564
|
// src/constants.ts
|
|
@@ -1589,7 +1589,7 @@ function matchAdditionalModule(source) {
|
|
|
1589
1589
|
return null;
|
|
1590
1590
|
}
|
|
1591
1591
|
function createModuleReference(type, id) {
|
|
1592
|
-
return `__CLOUDFLARE_MODULE__${type}__${id}
|
|
1592
|
+
return `__CLOUDFLARE_MODULE__${type}__${id}__CLOUDFLARE_MODULE__`;
|
|
1593
1593
|
}
|
|
1594
1594
|
|
|
1595
1595
|
// src/asset-config.ts
|
|
@@ -5787,8 +5787,14 @@ var InternalConfigSchema = z.object({
|
|
|
5787
5787
|
script_id: z.number().optional(),
|
|
5788
5788
|
debug: z.boolean().optional()
|
|
5789
5789
|
});
|
|
5790
|
+
var StaticRoutingSchema = z.object({
|
|
5791
|
+
version: z.literal(1),
|
|
5792
|
+
include: z.array(z.string()),
|
|
5793
|
+
exclude: z.array(z.string()).optional()
|
|
5794
|
+
});
|
|
5790
5795
|
var RouterConfigSchema = z.object({
|
|
5791
5796
|
invoke_user_worker_ahead_of_assets: z.boolean().optional(),
|
|
5797
|
+
static_routing: StaticRoutingSchema.optional(),
|
|
5792
5798
|
has_user_worker: z.boolean().optional(),
|
|
5793
5799
|
...InternalConfigSchema.shape
|
|
5794
5800
|
});
|
|
@@ -5829,6 +5835,7 @@ var AssetConfigSchema = z.object({
|
|
|
5829
5835
|
not_found_handling: z.enum(["single-page-application", "404-page", "none"]).optional(),
|
|
5830
5836
|
redirects: RedirectsSchema,
|
|
5831
5837
|
headers: HeadersSchema,
|
|
5838
|
+
has_static_routing: z.boolean().optional(),
|
|
5832
5839
|
...InternalConfigSchema.shape
|
|
5833
5840
|
});
|
|
5834
5841
|
|
|
@@ -12993,7 +13000,7 @@ var NodeJsCompatWarnings = class {
|
|
|
12993
13000
|
// src/shared.ts
|
|
12994
13001
|
var UNKNOWN_HOST = "http://localhost";
|
|
12995
13002
|
var INIT_PATH = "/__vite_plugin_cloudflare_init__";
|
|
12996
|
-
var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)
|
|
13003
|
+
var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)__CLOUDFLARE_MODULE__`;
|
|
12997
13004
|
var additionalModuleRE = new RegExp(ADDITIONAL_MODULE_PATTERN);
|
|
12998
13005
|
var additionalModuleGlobalRE = new RegExp(
|
|
12999
13006
|
ADDITIONAL_MODULE_PATTERN,
|
|
@@ -13029,19 +13036,6 @@ function toMiniflareRequest(request) {
|
|
|
13029
13036
|
duplex: "half"
|
|
13030
13037
|
});
|
|
13031
13038
|
}
|
|
13032
|
-
function nodeHeadersToWebHeaders(nodeHeaders) {
|
|
13033
|
-
const headers = new Headers();
|
|
13034
|
-
for (const [key, value] of Object.entries(nodeHeaders)) {
|
|
13035
|
-
if (typeof value === "string") {
|
|
13036
|
-
headers.append(key, value);
|
|
13037
|
-
} else if (Array.isArray(value)) {
|
|
13038
|
-
for (const item of value) {
|
|
13039
|
-
headers.append(key, item);
|
|
13040
|
-
}
|
|
13041
|
-
}
|
|
13042
|
-
}
|
|
13043
|
-
return headers;
|
|
13044
|
-
}
|
|
13045
13039
|
var postfixRE = /[?#].*$/;
|
|
13046
13040
|
function cleanUrl(url) {
|
|
13047
13041
|
return url.replace(postfixRE, "");
|
|
@@ -13355,6 +13349,7 @@ import {
|
|
|
13355
13349
|
LogLevel,
|
|
13356
13350
|
Response as MiniflareResponse
|
|
13357
13351
|
} from "miniflare";
|
|
13352
|
+
import colors2 from "picocolors";
|
|
13358
13353
|
import { globSync } from "tinyglobby";
|
|
13359
13354
|
import "vite";
|
|
13360
13355
|
import { unstable_getMiniflareWorkerOptions } from "wrangler";
|
|
@@ -13459,6 +13454,29 @@ function getEntryWorkerConfig(resolvedPluginConfig) {
|
|
|
13459
13454
|
}
|
|
13460
13455
|
return resolvedPluginConfig.workers[resolvedPluginConfig.entryWorkerEnvironmentName];
|
|
13461
13456
|
}
|
|
13457
|
+
function filterTails(tails, userWorkers, log) {
|
|
13458
|
+
return tails?.filter((tailService) => {
|
|
13459
|
+
let name;
|
|
13460
|
+
if (typeof tailService === "string") {
|
|
13461
|
+
name = tailService;
|
|
13462
|
+
} else if (typeof tailService === "object" && "name" in tailService && typeof tailService.name === "string") {
|
|
13463
|
+
name = tailService.name;
|
|
13464
|
+
} else {
|
|
13465
|
+
return true;
|
|
13466
|
+
}
|
|
13467
|
+
const found = userWorkers.some((w) => w.name === name);
|
|
13468
|
+
if (!found) {
|
|
13469
|
+
log(
|
|
13470
|
+
colors2.dim(
|
|
13471
|
+
colors2.yellow(
|
|
13472
|
+
`Tail consumer "${name}" was not found in your config. Make sure you add it if you'd like to simulate receiving tail events locally.`
|
|
13473
|
+
)
|
|
13474
|
+
)
|
|
13475
|
+
);
|
|
13476
|
+
}
|
|
13477
|
+
return found;
|
|
13478
|
+
});
|
|
13479
|
+
}
|
|
13462
13480
|
function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPort) {
|
|
13463
13481
|
const resolvedViteConfig = viteDevServer.config;
|
|
13464
13482
|
const entryWorkerConfig = getEntryWorkerConfig(resolvedPluginConfig);
|
|
@@ -13650,6 +13668,11 @@ function getDevMiniflareOptions(resolvedPluginConfig, viteDevServer, inspectorPo
|
|
|
13650
13668
|
}
|
|
13651
13669
|
return {
|
|
13652
13670
|
...workerOptions,
|
|
13671
|
+
tails: filterTails(
|
|
13672
|
+
workerOptions.tails,
|
|
13673
|
+
userWorkers,
|
|
13674
|
+
viteDevServer.config.logger.warn
|
|
13675
|
+
),
|
|
13653
13676
|
modules: [
|
|
13654
13677
|
{
|
|
13655
13678
|
type: "ESModule",
|
|
@@ -13740,6 +13763,11 @@ function getPreviewMiniflareOptions(vitePreviewServer, workerConfigs, persistSta
|
|
|
13740
13763
|
return [
|
|
13741
13764
|
{
|
|
13742
13765
|
...workerOptions,
|
|
13766
|
+
tails: filterTails(
|
|
13767
|
+
workerOptions.tails,
|
|
13768
|
+
workerConfigs,
|
|
13769
|
+
vitePreviewServer.config.logger.warn
|
|
13770
|
+
),
|
|
13743
13771
|
name: workerOptions.name ?? config.name,
|
|
13744
13772
|
unsafeInspectorProxy: inspectorPort !== false,
|
|
13745
13773
|
...miniflareWorkerOptions.main ? getPreviewModules(miniflareWorkerOptions.main, modulesRules) : { modules: true, script: "" }
|
|
@@ -14148,6 +14176,7 @@ function resolvePluginConfig(pluginConfig, userConfig, viteEnv) {
|
|
|
14148
14176
|
}
|
|
14149
14177
|
|
|
14150
14178
|
// src/websockets.ts
|
|
14179
|
+
import { createHeaders } from "@mjackson/node-fetch-server";
|
|
14151
14180
|
import { coupleWebSocket } from "miniflare";
|
|
14152
14181
|
import { WebSocketServer } from "ws";
|
|
14153
14182
|
function handleWebSocket(httpServer, getFetcher) {
|
|
@@ -14159,7 +14188,7 @@ function handleWebSocket(httpServer, getFetcher) {
|
|
|
14159
14188
|
if (request.headers["sec-websocket-protocol"]?.startsWith("vite")) {
|
|
14160
14189
|
return;
|
|
14161
14190
|
}
|
|
14162
|
-
const headers =
|
|
14191
|
+
const headers = createHeaders(request);
|
|
14163
14192
|
const fetcher = await getFetcher();
|
|
14164
14193
|
const response = await fetcher(url, {
|
|
14165
14194
|
headers,
|
|
@@ -14426,10 +14455,6 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
14426
14455
|
}
|
|
14427
14456
|
},
|
|
14428
14457
|
async configureServer(viteDevServer) {
|
|
14429
|
-
assert10(
|
|
14430
|
-
viteDevServer.httpServer,
|
|
14431
|
-
"Unexpected error: No Vite HTTP server"
|
|
14432
|
-
);
|
|
14433
14458
|
const inputInspectorPort = await getInputInspectorPortOption(
|
|
14434
14459
|
pluginConfig,
|
|
14435
14460
|
viteDevServer
|
|
@@ -14452,24 +14477,32 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
14452
14477
|
);
|
|
14453
14478
|
}
|
|
14454
14479
|
await initRunners(resolvedPluginConfig, viteDevServer, miniflare);
|
|
14455
|
-
|
|
14456
|
-
async (
|
|
14480
|
+
if (viteDevServer.httpServer) {
|
|
14481
|
+
handleWebSocket(viteDevServer.httpServer, async () => {
|
|
14457
14482
|
assert10(miniflare, `Miniflare not defined`);
|
|
14458
14483
|
const routerWorker = await getRouterWorker(miniflare);
|
|
14459
|
-
return routerWorker.fetch
|
|
14460
|
-
|
|
14461
|
-
|
|
14462
|
-
},
|
|
14463
|
-
{ alwaysCallNext: false }
|
|
14464
|
-
);
|
|
14465
|
-
handleWebSocket(viteDevServer.httpServer, async () => {
|
|
14466
|
-
assert10(miniflare, `Miniflare not defined`);
|
|
14467
|
-
const routerWorker = await getRouterWorker(miniflare);
|
|
14468
|
-
return routerWorker.fetch;
|
|
14469
|
-
});
|
|
14484
|
+
return routerWorker.fetch;
|
|
14485
|
+
});
|
|
14486
|
+
}
|
|
14470
14487
|
return () => {
|
|
14471
|
-
viteDevServer.middlewares.use((req, res, next) => {
|
|
14472
|
-
|
|
14488
|
+
viteDevServer.middlewares.use(async (req, res, next) => {
|
|
14489
|
+
try {
|
|
14490
|
+
assert10(miniflare, `Miniflare not defined`);
|
|
14491
|
+
const routerWorker = await getRouterWorker(miniflare);
|
|
14492
|
+
const request = createRequest(req, res);
|
|
14493
|
+
const response = await routerWorker.fetch(
|
|
14494
|
+
toMiniflareRequest(request),
|
|
14495
|
+
{
|
|
14496
|
+
redirect: "manual"
|
|
14497
|
+
}
|
|
14498
|
+
);
|
|
14499
|
+
if (req.httpVersionMajor === 2) {
|
|
14500
|
+
response.headers.delete("transfer-encoding");
|
|
14501
|
+
}
|
|
14502
|
+
await sendResponse(res, response);
|
|
14503
|
+
} catch (error) {
|
|
14504
|
+
next(error);
|
|
14505
|
+
}
|
|
14473
14506
|
});
|
|
14474
14507
|
};
|
|
14475
14508
|
},
|
|
@@ -14487,20 +14520,24 @@ function cloudflare2(pluginConfig = {}) {
|
|
|
14487
14520
|
inputInspectorPort
|
|
14488
14521
|
)
|
|
14489
14522
|
);
|
|
14490
|
-
const middleware = createMiddleware(
|
|
14491
|
-
({ request }) => {
|
|
14492
|
-
return miniflare2.dispatchFetch(toMiniflareRequest(request), {
|
|
14493
|
-
redirect: "manual"
|
|
14494
|
-
});
|
|
14495
|
-
},
|
|
14496
|
-
{ alwaysCallNext: false }
|
|
14497
|
-
);
|
|
14498
14523
|
handleWebSocket(
|
|
14499
14524
|
vitePreviewServer.httpServer,
|
|
14500
14525
|
() => miniflare2.dispatchFetch
|
|
14501
14526
|
);
|
|
14502
|
-
vitePreviewServer.middlewares.use((req, res, next) => {
|
|
14503
|
-
|
|
14527
|
+
vitePreviewServer.middlewares.use(async (req, res, next) => {
|
|
14528
|
+
try {
|
|
14529
|
+
const request = createRequest(req, res);
|
|
14530
|
+
const response = await miniflare2.dispatchFetch(
|
|
14531
|
+
toMiniflareRequest(request),
|
|
14532
|
+
{ redirect: "manual" }
|
|
14533
|
+
);
|
|
14534
|
+
if (req.httpVersionMajor === 2) {
|
|
14535
|
+
response.headers.delete("transfer-encoding");
|
|
14536
|
+
}
|
|
14537
|
+
await sendResponse(res, response);
|
|
14538
|
+
} catch (error) {
|
|
14539
|
+
next(error);
|
|
14540
|
+
}
|
|
14504
14541
|
});
|
|
14505
14542
|
}
|
|
14506
14543
|
},
|
|
@@ -14839,7 +14876,7 @@ async function getInputInspectorPortOption(pluginConfig, viteServer) {
|
|
|
14839
14876
|
const inputInspectorPort = pluginConfig.inspectorPort ?? await getFirstAvailablePort(DEFAULT_INSPECTOR_PORT);
|
|
14840
14877
|
if (pluginConfig.inspectorPort === void 0 && inputInspectorPort !== DEFAULT_INSPECTOR_PORT) {
|
|
14841
14878
|
viteServer.config.logger.warn(
|
|
14842
|
-
|
|
14879
|
+
colors3.dim(
|
|
14843
14880
|
`Default inspector port ${DEFAULT_INSPECTOR_PORT} not available, using ${inputInspectorPort} instead
|
|
14844
14881
|
`
|
|
14845
14882
|
)
|
|
@@ -15,7 +15,7 @@ var ADDITIONAL_MODULE_TYPES = [
|
|
|
15
15
|
// src/shared.ts
|
|
16
16
|
var UNKNOWN_HOST = "http://localhost";
|
|
17
17
|
var INIT_PATH = "/__vite_plugin_cloudflare_init__";
|
|
18
|
-
var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)
|
|
18
|
+
var ADDITIONAL_MODULE_PATTERN = `__CLOUDFLARE_MODULE__(${ADDITIONAL_MODULE_TYPES.join("|")})__(.*?)__CLOUDFLARE_MODULE__`;
|
|
19
19
|
var additionalModuleRE = new RegExp(ADDITIONAL_MODULE_PATTERN);
|
|
20
20
|
var additionalModuleGlobalRE = new RegExp(
|
|
21
21
|
ADDITIONAL_MODULE_PATTERN,
|
|
@@ -29,7 +29,7 @@ function stripInternalEnv(internalEnv) {
|
|
|
29
29
|
return userEnv;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
// ../../node_modules/.pnpm/vite@6.1.0_@types+node@
|
|
32
|
+
// ../../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
|
|
33
33
|
var VALID_ID_PREFIX = "/@id/";
|
|
34
34
|
var NULL_BYTE_PLACEHOLDER = "__x00__";
|
|
35
35
|
var SOURCEMAPPING_URL = "sourceMa";
|
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-3fcf19b1c",
|
|
4
4
|
"description": "Cloudflare plugin for Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare",
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"dist"
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@
|
|
36
|
+
"@cloudflare/unenv-preset": "2.3.2",
|
|
37
|
+
"@mjackson/node-fetch-server": "^0.6.1",
|
|
37
38
|
"@rollup/plugin-replace": "^6.0.1",
|
|
38
39
|
"get-port": "^7.1.0",
|
|
39
40
|
"picocolors": "^1.1.1",
|
|
40
41
|
"tinyglobby": "^0.2.12",
|
|
41
|
-
"unenv": "2.0.0-rc.
|
|
42
|
+
"unenv": "2.0.0-rc.17",
|
|
42
43
|
"ws": "8.18.0",
|
|
43
|
-
"
|
|
44
|
-
"miniflare": "0.0.0-
|
|
45
|
-
"wrangler": "0.0.0-3f8f1a148"
|
|
44
|
+
"wrangler": "0.0.0-3fcf19b1c",
|
|
45
|
+
"miniflare": "0.0.0-3fcf19b1c"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@cloudflare/workers-types": "^4.
|
|
48
|
+
"@cloudflare/workers-types": "^4.20250520.0",
|
|
49
49
|
"@types/node": "^22.10.1",
|
|
50
50
|
"@types/ws": "^8.5.13",
|
|
51
51
|
"magic-string": "^0.30.12",
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
"undici": "^5.28.5",
|
|
56
56
|
"vite": "^6.1.0",
|
|
57
57
|
"vitest": "~3.1.1",
|
|
58
|
-
"@cloudflare/workers-shared": "0.0.0-3f8f1a148",
|
|
59
58
|
"@cloudflare/mock-npm-registry": "0.0.0",
|
|
60
|
-
"@cloudflare/workers-tsconfig": "0.0.0"
|
|
59
|
+
"@cloudflare/workers-tsconfig": "0.0.0",
|
|
60
|
+
"@cloudflare/workers-shared": "0.0.0-3fcf19b1c"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
63
|
"vite": "^6.1.0",
|