one 1.24.8 → 1.25.2
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/cjs/cli/build.cjs +10 -0
- package/dist/cjs/cli/build.native.js +107 -96
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/headless-server.cjs +1 -0
- package/dist/cjs/headless-server.native.js +5 -4
- package/dist/cjs/headless-server.native.js.map +1 -1
- package/dist/cjs/server/setupBuildOptions.cjs +8 -0
- package/dist/cjs/server/setupBuildOptions.native.js +30 -0
- package/dist/cjs/server/setupBuildOptions.native.js.map +1 -1
- package/dist/cjs/vite/one.cjs +77 -46
- package/dist/cjs/vite/one.native.js +129 -92
- package/dist/cjs/vite/one.native.js.map +1 -1
- package/dist/cjs/vite/plugins/bundledDevPlugin.cjs +16 -7
- package/dist/cjs/vite/plugins/bundledDevPlugin.native.js +16 -7
- package/dist/cjs/vite/plugins/bundledDevPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.cjs +15 -11
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js +15 -11
- package/dist/cjs/vite/plugins/criticalCSSPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.cjs +9 -25
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js +9 -25
- package/dist/cjs/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/environmentGuardPlugin.cjs +22 -7
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js +23 -8
- package/dist/cjs/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +1 -1
- package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.cjs +42 -32
- package/dist/cjs/vite/plugins/imageDataPlugin.native.js +42 -32
- package/dist/cjs/vite/plugins/imageDataPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/imageDataPlugin.test.cjs +18 -38
- package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js +18 -38
- package/dist/cjs/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +58 -43
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +93 -76
- package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.cjs +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js +1 -1
- package/dist/cjs/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +31 -7
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +35 -10
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/dist/esm/cli/build.mjs +10 -0
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +107 -96
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/getURL.native.test.mjs +1 -1
- package/dist/esm/headless-server.mjs +1 -0
- package/dist/esm/headless-server.mjs.map +1 -1
- package/dist/esm/headless-server.native.js +5 -4
- package/dist/esm/headless-server.native.js.map +1 -1
- package/dist/esm/router/hmrImport.native.test.mjs +1 -1
- package/dist/esm/router/routeHmr.native.test.mjs +1 -1
- package/dist/esm/router/routeHmr.native.test.mjs.map +1 -1
- package/dist/esm/server/setupBuildOptions.mjs +8 -0
- package/dist/esm/server/setupBuildOptions.mjs.map +1 -1
- package/dist/esm/server/setupBuildOptions.native.js +30 -0
- package/dist/esm/server/setupBuildOptions.native.js.map +1 -1
- package/dist/esm/useLoader.native.js +0 -66
- package/dist/esm/useLoader.native.js.map +1 -1
- package/dist/esm/vite/one.mjs +77 -46
- package/dist/esm/vite/one.mjs.map +1 -1
- package/dist/esm/vite/one.native.js +129 -92
- package/dist/esm/vite/one.native.js.map +1 -1
- package/dist/esm/vite/plugins/bundledDevPlugin.mjs +16 -7
- package/dist/esm/vite/plugins/bundledDevPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/bundledDevPlugin.native.js +16 -7
- package/dist/esm/vite/plugins/bundledDevPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/criticalCSSPlugin.mjs +15 -11
- package/dist/esm/vite/plugins/criticalCSSPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/criticalCSSPlugin.native.js +15 -11
- package/dist/esm/vite/plugins/criticalCSSPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs +9 -25
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js +9 -25
- package/dist/esm/vite/plugins/criticalCSSPlugin.test.native.js.map +1 -1
- package/dist/esm/vite/plugins/environmentGuardPlugin.mjs +22 -7
- package/dist/esm/vite/plugins/environmentGuardPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/environmentGuardPlugin.native.js +23 -8
- package/dist/esm/vite/plugins/environmentGuardPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +1 -1
- package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/imageDataPlugin.mjs +42 -32
- package/dist/esm/vite/plugins/imageDataPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/imageDataPlugin.native.js +42 -32
- package/dist/esm/vite/plugins/imageDataPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/imageDataPlugin.test.mjs +18 -38
- package/dist/esm/vite/plugins/imageDataPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/imageDataPlugin.test.native.js +18 -38
- package/dist/esm/vite/plugins/imageDataPlugin.test.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +58 -43
- package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +93 -76
- package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.mjs.map +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js +1 -1
- package/dist/esm/vite/plugins/virtualEntryPlugin.test.native.js.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +31 -7
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +35 -10
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/package.json +12 -12
- package/src/cli/build.ts +19 -0
- package/src/headless-server.ts +1 -0
- package/src/server/setupBuildOptions.ts +12 -0
- package/src/vite/one.ts +121 -66
- package/src/vite/plugins/bundledDevPlugin.ts +17 -7
- package/src/vite/plugins/criticalCSSPlugin.test.ts +11 -27
- package/src/vite/plugins/criticalCSSPlugin.ts +15 -11
- package/src/vite/plugins/environmentGuardPlugin.ts +20 -7
- package/src/vite/plugins/fileSystemRouterPlugin.tsx +7 -3
- package/src/vite/plugins/imageDataPlugin.test.ts +20 -39
- package/src/vite/plugins/imageDataPlugin.ts +49 -44
- package/src/vite/plugins/virtualEntryPlugin.test.ts +1 -1
- package/src/vite/plugins/virtualEntryPlugin.ts +139 -122
- package/src/vite/plugins/warmRoutesPlugin.ts +36 -10
- package/src/vite/types.ts +19 -2
- package/types/cli/build.d.ts.map +1 -1
- package/types/headless-server.d.ts.map +1 -1
- package/types/server/setupBuildOptions.d.ts.map +1 -1
- package/types/vite/one.d.ts.map +1 -1
- package/types/vite/plugins/bundledDevPlugin.d.ts.map +1 -1
- package/types/vite/plugins/criticalCSSPlugin.d.ts.map +1 -1
- package/types/vite/plugins/environmentGuardPlugin.d.ts.map +1 -1
- package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
- package/types/vite/plugins/imageDataPlugin.d.ts.map +1 -1
- package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
- package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -1
- package/types/vite/types.d.ts +18 -2
- package/types/vite/types.d.ts.map +1 -1
|
@@ -32,29 +32,15 @@ describe("imageDataPlugin", function () {
|
|
|
32
32
|
vi.clearAllMocks();
|
|
33
33
|
});
|
|
34
34
|
describe("resolveId", function () {
|
|
35
|
-
it("
|
|
35
|
+
it("filters out ids without a trailing ?imagedata", async function () {
|
|
36
36
|
var {
|
|
37
37
|
imageDataPlugin
|
|
38
38
|
} = await import("./imageDataPlugin.native.js");
|
|
39
39
|
var plugin = imageDataPlugin();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var result = await plugin.resolveId("./image.jpg", void 0);
|
|
45
|
-
expect(result).toBeNull();
|
|
46
|
-
});
|
|
47
|
-
it("should return null for imports with imagedata not as suffix", async function () {
|
|
48
|
-
var {
|
|
49
|
-
imageDataPlugin
|
|
50
|
-
} = await import("./imageDataPlugin.native.js");
|
|
51
|
-
var plugin = imageDataPlugin();
|
|
52
|
-
if (plugin.configResolved) {
|
|
53
|
-
;
|
|
54
|
-
plugin.configResolved(mockConfig());
|
|
55
|
-
}
|
|
56
|
-
var result = await plugin.resolveId("./image?imagedata.jpg", void 0);
|
|
57
|
-
expect(result).toBeNull();
|
|
40
|
+
var filter = plugin.resolveId.filter.id;
|
|
41
|
+
expect(filter.test("./image.jpg")).toBe(false);
|
|
42
|
+
expect(filter.test("./image?imagedata.jpg")).toBe(false);
|
|
43
|
+
expect(filter.test("./image.jpg?imagedata")).toBe(true);
|
|
58
44
|
});
|
|
59
45
|
it("should resolve public dir paths starting with /", async function () {
|
|
60
46
|
var {
|
|
@@ -65,7 +51,7 @@ describe("imageDataPlugin", function () {
|
|
|
65
51
|
;
|
|
66
52
|
plugin.configResolved(mockConfig());
|
|
67
53
|
}
|
|
68
|
-
var result = await plugin.resolveId("/test-image.jpg?imagedata", void 0);
|
|
54
|
+
var result = await plugin.resolveId.handler("/test-image.jpg?imagedata", void 0);
|
|
69
55
|
expect(result).toBe("\0imagedata:" + resolve(PUBLIC_DIR, "test-image.jpg"));
|
|
70
56
|
});
|
|
71
57
|
it("should resolve relative imports", async function () {
|
|
@@ -77,7 +63,7 @@ describe("imageDataPlugin", function () {
|
|
|
77
63
|
;
|
|
78
64
|
plugin.configResolved(mockConfig());
|
|
79
65
|
}
|
|
80
|
-
var result = await plugin.resolveId("./test-image.jpg?imagedata", HERO_FILE);
|
|
66
|
+
var result = await plugin.resolveId.handler("./test-image.jpg?imagedata", HERO_FILE);
|
|
81
67
|
expect(result).toBe("\0imagedata:" + resolve(COMPONENTS_DIR, "test-image.jpg"));
|
|
82
68
|
});
|
|
83
69
|
it("should return null for non-existent files", async function () {
|
|
@@ -89,7 +75,7 @@ describe("imageDataPlugin", function () {
|
|
|
89
75
|
;
|
|
90
76
|
plugin.configResolved(mockConfig());
|
|
91
77
|
}
|
|
92
|
-
var result = await plugin.resolveId("/nonexistent.jpg?imagedata", void 0);
|
|
78
|
+
var result = await plugin.resolveId.handler("/nonexistent.jpg?imagedata", void 0);
|
|
93
79
|
expect(result).toBeNull();
|
|
94
80
|
});
|
|
95
81
|
});
|
|
@@ -103,7 +89,7 @@ describe("imageDataPlugin", function () {
|
|
|
103
89
|
;
|
|
104
90
|
plugin.configResolved(mockConfig());
|
|
105
91
|
}
|
|
106
|
-
var result = await plugin.resolveId("/../../../etc/passwd?imagedata", void 0);
|
|
92
|
+
var result = await plugin.resolveId.handler("/../../../etc/passwd?imagedata", void 0);
|
|
107
93
|
expect(result).toBeNull();
|
|
108
94
|
});
|
|
109
95
|
it("should block path traversal from relative imports", async function () {
|
|
@@ -115,7 +101,7 @@ describe("imageDataPlugin", function () {
|
|
|
115
101
|
;
|
|
116
102
|
plugin.configResolved(mockConfig());
|
|
117
103
|
}
|
|
118
|
-
var result = await plugin.resolveId("../../../../etc/passwd?imagedata", HERO_FILE);
|
|
104
|
+
var result = await plugin.resolveId.handler("../../../../etc/passwd?imagedata", HERO_FILE);
|
|
119
105
|
expect(result).toBeNull();
|
|
120
106
|
});
|
|
121
107
|
it("should block path traversal from root", async function () {
|
|
@@ -127,7 +113,7 @@ describe("imageDataPlugin", function () {
|
|
|
127
113
|
;
|
|
128
114
|
plugin.configResolved(mockConfig());
|
|
129
115
|
}
|
|
130
|
-
var result = await plugin.resolveId("../../../etc/passwd?imagedata", void 0);
|
|
116
|
+
var result = await plugin.resolveId.handler("../../../etc/passwd?imagedata", void 0);
|
|
131
117
|
expect(result).toBeNull();
|
|
132
118
|
});
|
|
133
119
|
it("should allow paths within project boundaries", async function () {
|
|
@@ -139,25 +125,19 @@ describe("imageDataPlugin", function () {
|
|
|
139
125
|
;
|
|
140
126
|
plugin.configResolved(mockConfig());
|
|
141
127
|
}
|
|
142
|
-
var result = await plugin.resolveId("../../src/test-image.jpg?imagedata", HERO_FILE);
|
|
128
|
+
var result = await plugin.resolveId.handler("../../src/test-image.jpg?imagedata", HERO_FILE);
|
|
143
129
|
expect(result).toBe("\0imagedata:" + resolve(PROJECT_ROOT, "src/test-image.jpg"));
|
|
144
130
|
});
|
|
145
131
|
});
|
|
146
132
|
describe("load", function () {
|
|
147
|
-
it("
|
|
133
|
+
it("filters out non-virtual modules before the handler runs", async function () {
|
|
148
134
|
var {
|
|
149
135
|
imageDataPlugin
|
|
150
136
|
} = await import("./imageDataPlugin.native.js");
|
|
151
137
|
var plugin = imageDataPlugin();
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
var mockContext = {
|
|
157
|
-
addWatchFile: vi.fn()
|
|
158
|
-
};
|
|
159
|
-
var result = await plugin.load.call(mockContext, "./image.jpg");
|
|
160
|
-
expect(result).toBeNull();
|
|
138
|
+
var filter = plugin.load.filter.id;
|
|
139
|
+
expect(filter.test("./image.jpg")).toBe(false);
|
|
140
|
+
expect(filter.test("\0imagedata:/abs/path/image.jpg")).toBe(true);
|
|
161
141
|
});
|
|
162
142
|
it("should return fallback data when sharp fails", async function () {
|
|
163
143
|
var {
|
|
@@ -172,7 +152,7 @@ describe("imageDataPlugin", function () {
|
|
|
172
152
|
addWatchFile: vi.fn()
|
|
173
153
|
};
|
|
174
154
|
var testFilePath = resolve(PUBLIC_DIR, "test-image.jpg");
|
|
175
|
-
var result = await plugin.load.call(mockContext, "\0imagedata:" + testFilePath);
|
|
155
|
+
var result = await plugin.load.handler.call(mockContext, "\0imagedata:" + testFilePath);
|
|
176
156
|
expect(result).toContain("export default");
|
|
177
157
|
expect(result).toContain('"src":"/test-image.jpg"');
|
|
178
158
|
expect(result).toContain('"width":');
|
|
@@ -212,7 +192,7 @@ describe("imageDataPlugin output format", function () {
|
|
|
212
192
|
addWatchFile: vi.fn()
|
|
213
193
|
};
|
|
214
194
|
var testFilePath = resolve(PUBLIC_DIR, "test-image.jpg");
|
|
215
|
-
var result = await plugin.load.call(mockContext, "\0imagedata:" + testFilePath);
|
|
195
|
+
var result = await plugin.load.handler.call(mockContext, "\0imagedata:" + testFilePath);
|
|
216
196
|
var jsonMatch = result === null || result === void 0 ? void 0 : result.match(/export default (.+)$/);
|
|
217
197
|
expect(jsonMatch).toBeTruthy();
|
|
218
198
|
if (jsonMatch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","afterEach","beforeEach","describe","expect","it","vi","_type_of","obj","Symbol","constructor","PROJECT_ROOT","PUBLIC_DIR","COMPONENTS_DIR","HERO_FILE","mock","actual","importActual","existsSync","fn","path","includes","mockConfig","publicDir","root","resetModules","clearAllMocks","imageDataPlugin","plugin","configResolved","result","
|
|
1
|
+
{"version":3,"names":["resolve","afterEach","beforeEach","describe","expect","it","vi","_type_of","obj","Symbol","constructor","PROJECT_ROOT","PUBLIC_DIR","COMPONENTS_DIR","HERO_FILE","mock","actual","importActual","existsSync","fn","path","includes","mockConfig","publicDir","root","resetModules","clearAllMocks","imageDataPlugin","plugin","filter","resolveId","id","test","toBe","configResolved","result","handler","toBeNull","load","mockContext","addWatchFile","testFilePath","call","toContain","toHaveBeenCalledWith","name","enforce","jsonMatch","match","toBeTruthy","parsed","JSON","parse","toHaveProperty","src","width","height","blurDataURL"],"sources":["../../../../src/vite/plugins/imageDataPlugin.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,9 @@ import { isNativeEnvironment } from "vxrn";
|
|
|
6
6
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.mjs";
|
|
7
7
|
import { matchDirectoryRenderMode, matchFileRenderMode } from "../../router/matchers.mjs";
|
|
8
8
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.mjs";
|
|
9
|
+
const escapeRe = s => s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
10
|
+
const VIRTUAL_ENTRY_SOURCE_RE = new RegExp(`^(?:${escapeRe(virtualEntryId)}|${escapeRe(virtualEntryIdNative)})$`);
|
|
11
|
+
const VIRTUAL_ENTRY_RESOLVED_RE = new RegExp(`^(?:${escapeRe(resolvedVirtualEntryId)}|${escapeRe(resolvedVirtualEntryIdNative)})$`);
|
|
9
12
|
function normalizeSetupFile(setupFile) {
|
|
10
13
|
if (!setupFile) return {};
|
|
11
14
|
if (typeof setupFile === "string") {
|
|
@@ -78,53 +81,64 @@ function createVirtualEntry(options) {
|
|
|
78
81
|
viteRoot = config.root;
|
|
79
82
|
isDevMode = config.command === "serve";
|
|
80
83
|
},
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
// only the two virtual entry ids reach js; every other import in the graph
|
|
85
|
+
// is rejected rust-side
|
|
86
|
+
resolveId: {
|
|
87
|
+
filter: {
|
|
88
|
+
id: VIRTUAL_ENTRY_SOURCE_RE
|
|
89
|
+
},
|
|
90
|
+
handler(id) {
|
|
91
|
+
if (id === virtualEntryId) {
|
|
92
|
+
return resolvedVirtualEntryId;
|
|
93
|
+
}
|
|
94
|
+
if (id === virtualEntryIdNative) {
|
|
95
|
+
return resolvedVirtualEntryIdNative;
|
|
96
|
+
}
|
|
87
97
|
}
|
|
88
98
|
},
|
|
89
|
-
load
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
99
|
+
load: {
|
|
100
|
+
filter: {
|
|
101
|
+
id: VIRTUAL_ENTRY_RESOLVED_RE
|
|
102
|
+
},
|
|
103
|
+
handler(id) {
|
|
104
|
+
if (id === resolvedVirtualEntryId) {
|
|
105
|
+
const isNative = isNativeEnvironment(this.environment);
|
|
106
|
+
const isSSR = this.environment.name === "ssr";
|
|
107
|
+
const serverSpaRouteFiles = isSSR ? options.routeIndex.getPaths().map(file => file.replace(/^\.\//, "")).filter(file => /\.tsx?$/.test(file)).filter(file => !micromatch.isMatch(file, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS)).filter(file => {
|
|
108
|
+
const parts = file.split("/");
|
|
109
|
+
const filename = parts.at(-1) || "";
|
|
110
|
+
if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const fileMode = matchFileRenderMode(filename);
|
|
114
|
+
if (fileMode) return fileMode === "spa";
|
|
115
|
+
let parentMode;
|
|
116
|
+
for (const directory of parts.slice(0, -1)) {
|
|
117
|
+
parentMode = matchDirectoryRenderMode(directory)?.renderMode ?? parentMode;
|
|
118
|
+
}
|
|
119
|
+
return parentMode === "spa";
|
|
120
|
+
}) : [];
|
|
121
|
+
const serverSpaRouteStubs = serverSpaRouteFiles.map(file => `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`).join(",\n ");
|
|
122
|
+
const serverSpaBuildGlobs = serverSpaRouteFiles.map(file => `/${options.root}/${file}`);
|
|
123
|
+
const serverSpaBuildRoutes = serverSpaBuildGlobs.length ? `{
|
|
110
124
|
loader: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'loader', query: '?one-spa-build' }),
|
|
111
125
|
generateStaticParams: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'generateStaticParams', query: '?one-spa-build' }),
|
|
112
126
|
sitemap: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'sitemap', query: '?one-spa-build' })
|
|
113
127
|
}` : "{}";
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
128
|
+
const webRouteGlobs = [...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(pattern => `!${pattern}`), ...serverSpaRouteFiles.map(file => `!/${options.root}/${file}`)];
|
|
129
|
+
const useStaticImport = isNative || isSSR && isDevMode;
|
|
130
|
+
const setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
|
|
131
|
+
const nativewindImport = configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
|
|
132
|
+
const setupPromiseArg = setupResult.promiseVarName ? `getSetupPromise: ${setupResult.promiseVarName},` : "";
|
|
133
|
+
const linkingArg = options.router?.linking ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
134
|
+
const isDevClient = this.environment.mode === "dev" && this.environment.name === "client";
|
|
135
|
+
const refreshPreambleImport = isDevClient ? `import { injectIntoGlobalHook as __oneInjectRefresh } from '/@react-refresh'` : "";
|
|
136
|
+
const refreshPreambleSetup = isDevClient ? `if (typeof window !== 'undefined' && !window.$RefreshReg$) {
|
|
123
137
|
__oneInjectRefresh(window)
|
|
124
138
|
window.$RefreshReg$ = () => {}
|
|
125
139
|
window.$RefreshSig$ = () => (type) => type
|
|
126
140
|
}` : "";
|
|
127
|
-
|
|
141
|
+
return `
|
|
128
142
|
${setupResult.promiseDeclaration}
|
|
129
143
|
${nativewindImport}
|
|
130
144
|
${refreshPreambleImport}
|
|
@@ -160,12 +174,12 @@ export default createApp({
|
|
|
160
174
|
${linkingArg}
|
|
161
175
|
})
|
|
162
176
|
`;
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
177
|
+
}
|
|
178
|
+
if (id === resolvedVirtualEntryIdNative) {
|
|
179
|
+
const isNative = isNativeEnvironment(this.environment);
|
|
180
|
+
const setupResult = getSetupFileImport(this.environment.name, setupFiles, isNative, viteRoot);
|
|
181
|
+
const linkingArg = options.router?.linking ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
182
|
+
return `
|
|
169
183
|
import { createApp } from 'one'
|
|
170
184
|
${setupResult.importStatement}
|
|
171
185
|
|
|
@@ -177,6 +191,7 @@ export default createApp({
|
|
|
177
191
|
${linkingArg}
|
|
178
192
|
})
|
|
179
193
|
`;
|
|
194
|
+
}
|
|
180
195
|
}
|
|
181
196
|
}
|
|
182
197
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["resolve","pathToFileURL","configuration","micromatch","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","matchDirectoryRenderMode","matchFileRenderMode","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","id","load","isNative","environment","isSSR","serverSpaRouteFiles","routeIndex","getPaths","file","
|
|
1
|
+
{"version":3,"names":["resolve","pathToFileURL","configuration","micromatch","isNativeEnvironment","API_ROUTE_GLOB_PATTERN","ROUTE_GLOB_PATTERN","ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS","ROUTE_WEB_EXCLUSION_GLOB_PATTERNS","matchDirectoryRenderMode","matchFileRenderMode","resolvedVirtualEntryId","resolvedVirtualEntryIdNative","virtualEntryId","virtualEntryIdNative","escapeRe","s","replace","VIRTUAL_ENTRY_SOURCE_RE","RegExp","VIRTUAL_ENTRY_RESOLVED_RE","normalizeSetupFile","setupFile","client","server","ios","android","native","sf","getSetupFileImport","environmentName","setupFiles","useStaticImport","root","envMap","ssr","key","importStatement","promiseDeclaration","promiseVarName","resolvedSetupFile","href","JSON","stringify","createVirtualEntry","options","routeGlobs","router","ignoredRouteFiles","map","pattern","apiRouteGlobs","viteRoot","isDevMode","name","enforce","configResolved","config","command","resolveId","filter","id","handler","load","isNative","environment","isSSR","serverSpaRouteFiles","routeIndex","getPaths","file","test","isMatch","parts","split","filename","at","startsWith","fileMode","parentMode","directory","slice","renderMode","serverSpaRouteStubs","join","serverSpaBuildGlobs","serverSpaBuildRoutes","length","webRouteGlobs","setupResult","nativewindImport","enableNativewind","setupPromiseArg","linkingArg","linking","isDevClient","mode","refreshPreambleImport","refreshPreambleSetup","flags","p"],"sources":["../../../../src/vite/plugins/virtualEntryPlugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,11 @@ import { isNativeEnvironment } from "vxrn";
|
|
|
6
6
|
import { API_ROUTE_GLOB_PATTERN, ROUTE_GLOB_PATTERN, ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS } from "../../router/glob-patterns.native.js";
|
|
7
7
|
import { matchDirectoryRenderMode, matchFileRenderMode } from "../../router/matchers.native.js";
|
|
8
8
|
import { resolvedVirtualEntryId, resolvedVirtualEntryIdNative, virtualEntryId, virtualEntryIdNative } from "./virtualEntryConstants.native.js";
|
|
9
|
+
var escapeRe = function (s) {
|
|
10
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
11
|
+
};
|
|
12
|
+
var VIRTUAL_ENTRY_SOURCE_RE = new RegExp(`^(?:${escapeRe(virtualEntryId)}|${escapeRe(virtualEntryIdNative)})$`);
|
|
13
|
+
var VIRTUAL_ENTRY_RESOLVED_RE = new RegExp(`^(?:${escapeRe(resolvedVirtualEntryId)}|${escapeRe(resolvedVirtualEntryIdNative)})$`);
|
|
9
14
|
function normalizeSetupFile(setupFile) {
|
|
10
15
|
if (!setupFile) return {};
|
|
11
16
|
if (typeof setupFile === "string") {
|
|
@@ -81,89 +86,100 @@ function createVirtualEntry(options) {
|
|
|
81
86
|
viteRoot = config.root;
|
|
82
87
|
isDevMode = config.command === "serve";
|
|
83
88
|
},
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
// only the two virtual entry ids reach js; every other import in the graph
|
|
90
|
+
// is rejected rust-side
|
|
91
|
+
resolveId: {
|
|
92
|
+
filter: {
|
|
93
|
+
id: VIRTUAL_ENTRY_SOURCE_RE
|
|
94
|
+
},
|
|
95
|
+
handler(id) {
|
|
96
|
+
if (id === virtualEntryId) {
|
|
97
|
+
return resolvedVirtualEntryId;
|
|
98
|
+
}
|
|
99
|
+
if (id === virtualEntryIdNative) {
|
|
100
|
+
return resolvedVirtualEntryIdNative;
|
|
101
|
+
}
|
|
90
102
|
}
|
|
91
103
|
},
|
|
92
|
-
load
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
var _iteratorNormalCompletion = true,
|
|
113
|
-
_didIteratorError = false,
|
|
114
|
-
_iteratorError = void 0;
|
|
115
|
-
try {
|
|
116
|
-
for (var _iterator = parts.slice(0, -1)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
117
|
-
var directory = _step.value;
|
|
118
|
-
var _ref;
|
|
119
|
-
var _matchDirectoryRenderMode;
|
|
120
|
-
parentMode = (_ref = (_matchDirectoryRenderMode = matchDirectoryRenderMode(directory)) === null || _matchDirectoryRenderMode === void 0 ? void 0 : _matchDirectoryRenderMode.renderMode) !== null && _ref !== void 0 ? _ref : parentMode;
|
|
104
|
+
load: {
|
|
105
|
+
filter: {
|
|
106
|
+
id: VIRTUAL_ENTRY_RESOLVED_RE
|
|
107
|
+
},
|
|
108
|
+
handler(id) {
|
|
109
|
+
if (id === resolvedVirtualEntryId) {
|
|
110
|
+
var _options_router2;
|
|
111
|
+
var isNative = isNativeEnvironment(this.environment);
|
|
112
|
+
var isSSR = this.environment.name === "ssr";
|
|
113
|
+
var serverSpaRouteFiles = isSSR ? options.routeIndex.getPaths().map(function (file) {
|
|
114
|
+
return file.replace(/^\.\//, "");
|
|
115
|
+
}).filter(function (file) {
|
|
116
|
+
return /\.tsx?$/.test(file);
|
|
117
|
+
}).filter(function (file) {
|
|
118
|
+
return !micromatch.isMatch(file, ROUTE_WEB_EXCLUSION_GLOB_PATTERNS);
|
|
119
|
+
}).filter(function (file) {
|
|
120
|
+
var parts = file.split("/");
|
|
121
|
+
var filename = parts.at(-1) || "";
|
|
122
|
+
if (filename.startsWith("_layout") || filename.startsWith("_middleware")) {
|
|
123
|
+
return false;
|
|
121
124
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
125
|
+
var fileMode = matchFileRenderMode(filename);
|
|
126
|
+
if (fileMode) return fileMode === "spa";
|
|
127
|
+
var parentMode;
|
|
128
|
+
var _iteratorNormalCompletion = true,
|
|
129
|
+
_didIteratorError = false,
|
|
130
|
+
_iteratorError = void 0;
|
|
126
131
|
try {
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
for (var _iterator = parts.slice(0, -1)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
133
|
+
var directory = _step.value;
|
|
134
|
+
var _ref;
|
|
135
|
+
var _matchDirectoryRenderMode;
|
|
136
|
+
parentMode = (_ref = (_matchDirectoryRenderMode = matchDirectoryRenderMode(directory)) === null || _matchDirectoryRenderMode === void 0 ? void 0 : _matchDirectoryRenderMode.renderMode) !== null && _ref !== void 0 ? _ref : parentMode;
|
|
129
137
|
}
|
|
138
|
+
} catch (err) {
|
|
139
|
+
_didIteratorError = true;
|
|
140
|
+
_iteratorError = err;
|
|
130
141
|
} finally {
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
try {
|
|
143
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
144
|
+
_iterator.return();
|
|
145
|
+
}
|
|
146
|
+
} finally {
|
|
147
|
+
if (_didIteratorError) {
|
|
148
|
+
throw _iteratorError;
|
|
149
|
+
}
|
|
133
150
|
}
|
|
134
151
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var serverSpaBuildRoutes = serverSpaBuildGlobs.length ? `{
|
|
152
|
+
return parentMode === "spa";
|
|
153
|
+
}) : [];
|
|
154
|
+
var serverSpaRouteStubs = serverSpaRouteFiles.map(function (file) {
|
|
155
|
+
return `${JSON.stringify(`/${options.root}/${file}`)}: () => Promise.resolve({})`;
|
|
156
|
+
}).join(",\n ");
|
|
157
|
+
var serverSpaBuildGlobs = serverSpaRouteFiles.map(function (file) {
|
|
158
|
+
return `/${options.root}/${file}`;
|
|
159
|
+
});
|
|
160
|
+
var serverSpaBuildRoutes = serverSpaBuildGlobs.length ? `{
|
|
145
161
|
loader: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'loader', query: '?one-spa-build' }),
|
|
146
162
|
generateStaticParams: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'generateStaticParams', query: '?one-spa-build' }),
|
|
147
163
|
sitemap: import.meta.glob(${JSON.stringify(serverSpaBuildGlobs)}, { exhaustive: true, import: 'sitemap', query: '?one-spa-build' })
|
|
148
164
|
}` : "{}";
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
165
|
+
var webRouteGlobs = [...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map(function (pattern) {
|
|
166
|
+
return `!${pattern}`;
|
|
167
|
+
}), ...serverSpaRouteFiles.map(function (file) {
|
|
168
|
+
return `!/${options.root}/${file}`;
|
|
169
|
+
})];
|
|
170
|
+
var useStaticImport = isNative || isSSR && isDevMode;
|
|
171
|
+
var setupResult = getSetupFileImport(this.environment.name, setupFiles, useStaticImport, viteRoot);
|
|
172
|
+
var nativewindImport = configuration.enableNativewind ? `import 'react-native-css-interop/dist/runtime/components'` : "";
|
|
173
|
+
var setupPromiseArg = setupResult.promiseVarName ? `getSetupPromise: ${setupResult.promiseVarName},` : "";
|
|
174
|
+
var linkingArg = ((_options_router2 = options.router) === null || _options_router2 === void 0 ? void 0 : _options_router2.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
175
|
+
var isDevClient = this.environment.mode === "dev" && this.environment.name === "client";
|
|
176
|
+
var refreshPreambleImport = isDevClient ? `import { injectIntoGlobalHook as __oneInjectRefresh } from '/@react-refresh'` : "";
|
|
177
|
+
var refreshPreambleSetup = isDevClient ? `if (typeof window !== 'undefined' && !window.$RefreshReg$) {
|
|
162
178
|
__oneInjectRefresh(window)
|
|
163
179
|
window.$RefreshReg$ = () => {}
|
|
164
180
|
window.$RefreshSig$ = () => (type) => type
|
|
165
181
|
}` : "";
|
|
166
|
-
|
|
182
|
+
return `
|
|
167
183
|
${setupResult.promiseDeclaration}
|
|
168
184
|
${nativewindImport}
|
|
169
185
|
${refreshPreambleImport}
|
|
@@ -199,26 +215,27 @@ export default createApp({
|
|
|
199
215
|
${linkingArg}
|
|
200
216
|
})
|
|
201
217
|
`;
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
218
|
+
}
|
|
219
|
+
if (id === resolvedVirtualEntryIdNative) {
|
|
220
|
+
var _options_router1;
|
|
221
|
+
var isNative1 = isNativeEnvironment(this.environment);
|
|
222
|
+
var setupResult1 = getSetupFileImport(this.environment.name, setupFiles, isNative1, viteRoot);
|
|
223
|
+
var linkingArg1 = ((_options_router1 = options.router) === null || _options_router1 === void 0 ? void 0 : _options_router1.linking) ? `linking: ${JSON.stringify(options.router.linking)},` : "";
|
|
224
|
+
return `
|
|
209
225
|
import { createApp } from 'one'
|
|
210
226
|
${setupResult1.importStatement}
|
|
211
227
|
|
|
212
228
|
// globbing ${JSON.stringify(routeGlobs)}
|
|
213
229
|
export default createApp({
|
|
214
230
|
routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map(function (p) {
|
|
215
|
-
|
|
216
|
-
|
|
231
|
+
return `!${p}`;
|
|
232
|
+
}), `!${apiRouteGlobs}`])}, { exhaustive: true }),
|
|
217
233
|
routerRoot: ${JSON.stringify(options.root)},
|
|
218
234
|
flags: ${JSON.stringify(options.flags)},
|
|
219
235
|
${linkingArg1}
|
|
220
236
|
})
|
|
221
237
|
`;
|
|
238
|
+
}
|
|
222
239
|
}
|
|
223
240
|
}
|
|
224
241
|
};
|