one 1.24.9 → 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/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/getURL.native.test.mjs +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/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/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 +6 -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 +6 -1
- 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
|
};
|