@marko/vite 2.0.2 → 2.0.3
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/LICENSE +1 -1
- package/dist/chunk-HWRQJHCN.mjs +22 -0
- package/dist/chunk-MPTD6LHF.mjs +65 -0
- package/dist/chunk-VL2HLMVE.mjs +80 -0
- package/dist/chunk-Z64RCGRQ.mjs +74 -0
- package/dist/components/vite.marko +17 -14
- package/dist/esbuild-plugin.d.ts +3 -0
- package/dist/esbuild-plugin.js +97 -0
- package/dist/esbuild-plugin.mjs +6 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +158 -149
- package/dist/index.mjs +159 -161
- package/dist/manifest-generator.js +17 -17
- package/dist/manifest-generator.mjs +5 -56
- package/dist/render-assets-transform.js +17 -4
- package/dist/render-assets-transform.mjs +2 -1
- package/dist/serializer.js +14 -17
- package/dist/serializer.mjs +3 -75
- package/dist/server-entry-template.js +13 -13
- package/dist/server-entry-template.mjs +3 -17
- package/package.json +55 -42
- package/dist/components/vite-watch.marko +0 -31
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,157 +1,150 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
-
var __reExport = (target, module, desc) => {
|
|
26
|
-
if (module && typeof module === "object" || typeof module === "function") {
|
|
27
|
-
for (let key of __getOwnPropNames(module))
|
|
28
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
29
|
-
__defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
|
|
30
|
-
}
|
|
31
|
-
return target;
|
|
32
|
-
};
|
|
33
|
-
var __toModule = (module) => {
|
|
34
|
-
return __reExport(__markAsModule(__defProp(module != null ? __create(__getProtoOf(module)) : {}, "default", module && module.__esModule && "default" in module ? { get: () => module.default, enumerable: true } : { value: module, enumerable: true })), module);
|
|
35
|
-
};
|
|
1
|
+
import {
|
|
2
|
+
esbuildPlugin
|
|
3
|
+
} from "./chunk-Z64RCGRQ.mjs";
|
|
4
|
+
import {
|
|
5
|
+
generateDocManifest,
|
|
6
|
+
generateInputDoc
|
|
7
|
+
} from "./chunk-MPTD6LHF.mjs";
|
|
8
|
+
import "./chunk-VL2HLMVE.mjs";
|
|
9
|
+
import {
|
|
10
|
+
server_entry_template_default
|
|
11
|
+
} from "./chunk-HWRQJHCN.mjs";
|
|
12
|
+
|
|
13
|
+
// src/index.ts
|
|
36
14
|
import os from "os";
|
|
37
15
|
import fs from "fs";
|
|
38
16
|
import path from "path";
|
|
39
17
|
import crypto from "crypto";
|
|
40
|
-
import { pathToFileURL } from "url";
|
|
41
18
|
import anyMatch from "anymatch";
|
|
42
|
-
import
|
|
43
|
-
import {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
19
|
+
import { pathToFileURL, fileURLToPath } from "url";
|
|
20
|
+
import { relativeImportPath } from "relative-import-path";
|
|
21
|
+
var normalizePath = path.sep === "\\" ? (id) => id.replace(/\\/g, "/") : (id) => id;
|
|
22
|
+
var virtualFiles = /* @__PURE__ */ new Map();
|
|
23
|
+
var queryReg = /\?marko-.+$/;
|
|
24
|
+
var browserEntryQuery = "?marko-browser-entry";
|
|
25
|
+
var serverEntryQuery = "?marko-server-entry";
|
|
26
|
+
var virtualFileQuery = "?marko-virtual";
|
|
27
|
+
var markoExt = ".marko";
|
|
28
|
+
var htmlExt = ".html";
|
|
29
|
+
var resolveOpts = { skipSelf: true };
|
|
30
|
+
var cache = /* @__PURE__ */ new Map();
|
|
31
|
+
var thisFile = typeof __filename === "string" ? __filename : fileURLToPath(import.meta.url);
|
|
32
|
+
var tempDir;
|
|
56
33
|
function markoPlugin(opts = {}) {
|
|
57
34
|
var _a;
|
|
58
35
|
let compiler;
|
|
59
36
|
const { runtimeId, linked = true } = opts;
|
|
60
37
|
const baseConfig = {
|
|
38
|
+
cache,
|
|
61
39
|
runtimeId,
|
|
62
40
|
sourceMaps: true,
|
|
63
41
|
writeVersionComment: false,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
caller:
|
|
42
|
+
babelConfig: {
|
|
43
|
+
...opts.babelConfig,
|
|
44
|
+
caller: {
|
|
67
45
|
name: "@marko/vite",
|
|
68
46
|
supportsStaticESM: true,
|
|
69
47
|
supportsDynamicImport: true,
|
|
70
48
|
supportsTopLevelAwait: true,
|
|
71
|
-
supportsExportNamespaceFrom: true
|
|
72
|
-
|
|
73
|
-
|
|
49
|
+
supportsExportNamespaceFrom: true,
|
|
50
|
+
...(_a = opts.babelConfig) == null ? void 0 : _a.caller
|
|
51
|
+
}
|
|
52
|
+
}
|
|
74
53
|
};
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
if (devServer) {
|
|
83
|
-
const prev = virtualFiles.get(id);
|
|
84
|
-
if (prev && prev.code !== dep.code) {
|
|
85
|
-
devServer.moduleGraph.invalidateModule(devServer.moduleGraph.getModuleById(id));
|
|
86
|
-
}
|
|
54
|
+
const resolveViteVirtualDep = (from, dep) => {
|
|
55
|
+
const query = `${virtualFileQuery}&id=${normalizePath(dep.virtualPath)}`;
|
|
56
|
+
const id = normalizePath(from) + query;
|
|
57
|
+
if (devServer) {
|
|
58
|
+
const prev = virtualFiles.get(id);
|
|
59
|
+
if (prev && prev.code !== dep.code) {
|
|
60
|
+
devServer.moduleGraph.invalidateModule(devServer.moduleGraph.getModuleById(id));
|
|
87
61
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
62
|
+
}
|
|
63
|
+
virtualFiles.set(id, dep);
|
|
64
|
+
return `./${path.basename(from) + query}`;
|
|
65
|
+
};
|
|
66
|
+
const ssrConfig = {
|
|
67
|
+
...baseConfig,
|
|
68
|
+
resolveVirtualDependency: resolveViteVirtualDep,
|
|
69
|
+
output: "html"
|
|
70
|
+
};
|
|
71
|
+
const domConfig = {
|
|
72
|
+
...baseConfig,
|
|
73
|
+
resolveVirtualDependency: resolveViteVirtualDep,
|
|
91
74
|
output: "dom"
|
|
92
|
-
}
|
|
93
|
-
const hydrateConfig =
|
|
75
|
+
};
|
|
76
|
+
const hydrateConfig = {
|
|
77
|
+
...baseConfig,
|
|
78
|
+
resolveVirtualDependency: resolveViteVirtualDep,
|
|
94
79
|
output: "hydrate"
|
|
95
|
-
}
|
|
80
|
+
};
|
|
96
81
|
let root;
|
|
82
|
+
let devEntryFile;
|
|
97
83
|
let isBuild = false;
|
|
98
84
|
let isSSRBuild = false;
|
|
99
85
|
let devServer;
|
|
100
86
|
let registeredTag = false;
|
|
101
87
|
let serverManifest;
|
|
102
|
-
const transformWatchFiles = new Map();
|
|
103
|
-
const transformOptionalFiles = new Map();
|
|
88
|
+
const transformWatchFiles = /* @__PURE__ */ new Map();
|
|
89
|
+
const transformOptionalFiles = /* @__PURE__ */ new Map();
|
|
104
90
|
return [
|
|
105
91
|
{
|
|
106
92
|
name: "marko-vite:pre",
|
|
107
93
|
enforce: "pre",
|
|
108
94
|
async config(config, env) {
|
|
109
|
-
var _a2, _b, _c
|
|
110
|
-
compiler
|
|
111
|
-
root = config.root || process.cwd();
|
|
95
|
+
var _a2, _b, _c;
|
|
96
|
+
compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
|
|
97
|
+
root = normalizePath(config.root || process.cwd());
|
|
98
|
+
devEntryFile = path.join(root, "index.html");
|
|
112
99
|
isBuild = env.command === "build";
|
|
113
100
|
isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
|
|
114
|
-
if (!registeredTag) {
|
|
115
|
-
const transformer = path.resolve(
|
|
116
|
-
registeredTag = path.resolve(
|
|
101
|
+
if (linked && !registeredTag) {
|
|
102
|
+
const transformer = path.resolve(thisFile, "../render-assets-transform");
|
|
103
|
+
registeredTag = normalizePath(path.resolve(thisFile, "../components", "vite.marko"));
|
|
117
104
|
compiler.taglib.register("@marko/vite", {
|
|
118
105
|
"<_vite>": { template: registeredTag },
|
|
119
106
|
"<head>": { transformer },
|
|
120
107
|
"<body>": { transformer }
|
|
121
108
|
});
|
|
122
109
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const entry = tag.template || tag.renderer;
|
|
134
|
-
if (entry) {
|
|
135
|
-
taglibDeps.push(entry.replace(/^.*?[\\/]node_modules[\\/]/, ""));
|
|
136
|
-
}
|
|
110
|
+
const lookup = compiler.taglib.buildLookup(root);
|
|
111
|
+
const taglibDeps = [];
|
|
112
|
+
for (const name in lookup.taglibsById) {
|
|
113
|
+
const taglib = lookup.taglibsById[name];
|
|
114
|
+
if (!/^marko-(.+-)?core$/.test(taglib.id) && /[\\/]node_modules[\\/]/.test(taglib.dirname)) {
|
|
115
|
+
for (const tagName in taglib.tags) {
|
|
116
|
+
const tag = taglib.tags[tagName];
|
|
117
|
+
const entry = tag.template || tag.renderer;
|
|
118
|
+
if (entry) {
|
|
119
|
+
taglibDeps.push(relativeImportPath(devEntryFile, entry));
|
|
137
120
|
}
|
|
138
121
|
}
|
|
139
122
|
}
|
|
140
|
-
const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
|
|
141
|
-
const serverDeps = Array.from(new Set(htmlRuntimeDeps.concat(taglibDeps)));
|
|
142
|
-
const optimizeDeps = (_a2 = config.optimizeDeps) != null ? _a2 : config.optimizeDeps = {};
|
|
143
|
-
(_b = optimizeDeps.include) != null ? _b : optimizeDeps.include = [];
|
|
144
|
-
optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => path.extname(dep) !== markoExt));
|
|
145
|
-
(_c = optimizeDeps.exclude) != null ? _c : optimizeDeps.exclude = [];
|
|
146
|
-
optimizeDeps.exclude = optimizeDeps.exclude.concat(domDeps.filter((dep) => path.extname(dep) === markoExt));
|
|
147
|
-
const ssr = (_d = config.ssr) != null ? _d : config.ssr = {};
|
|
148
|
-
(_e = ssr.external) != null ? _e : ssr.external = [];
|
|
149
|
-
ssr.external = ssr.external.concat(serverDeps);
|
|
150
|
-
(await Promise.resolve().then(() => __toModule(require("@marko/compiler/register")))).default(__spreadProps(__spreadValues({}, ssrConfig), {
|
|
151
|
-
sourceMaps: "inline",
|
|
152
|
-
modules: "cjs"
|
|
153
|
-
}));
|
|
154
123
|
}
|
|
124
|
+
const optimizeDeps = config.optimizeDeps ?? (config.optimizeDeps = {});
|
|
125
|
+
optimizeDeps.include = Array.from(/* @__PURE__ */ new Set([
|
|
126
|
+
...optimizeDeps.include || [],
|
|
127
|
+
...compiler.getRuntimeEntryFiles("dom", opts.translator),
|
|
128
|
+
...compiler.getRuntimeEntryFiles("html", opts.translator),
|
|
129
|
+
...taglibDeps
|
|
130
|
+
]));
|
|
131
|
+
const ssr = config.ssr ?? (config.ssr = {});
|
|
132
|
+
if (ssr.noExternal !== true) {
|
|
133
|
+
ssr.noExternal = Array.from(new Set(taglibDeps.concat(ssr.noExternal || [])));
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
...config,
|
|
137
|
+
optimizeDeps: {
|
|
138
|
+
...config.optimizeDeps,
|
|
139
|
+
extensions: [".marko", ...((_a2 = config.optimizeDeps) == null ? void 0 : _a2.extensions) || []],
|
|
140
|
+
esbuildOptions: {
|
|
141
|
+
plugins: [
|
|
142
|
+
esbuildPlugin(compiler, baseConfig),
|
|
143
|
+
...((_c = (_b = config.optimizeDeps) == null ? void 0 : _b.esbuildOptions) == null ? void 0 : _c.plugins) || []
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
155
148
|
},
|
|
156
149
|
configureServer(_server) {
|
|
157
150
|
ssrConfig.hot = domConfig.hot = true;
|
|
@@ -191,63 +184,64 @@ function markoPlugin(opts = {}) {
|
|
|
191
184
|
}
|
|
192
185
|
}
|
|
193
186
|
},
|
|
194
|
-
async resolveId(importee, importer,
|
|
195
|
-
|
|
196
|
-
if (
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
187
|
+
async resolveId(importee, importer, importOpts, ssr = importOpts.ssr) {
|
|
188
|
+
var _a2;
|
|
189
|
+
if (virtualFiles.has(importee)) {
|
|
190
|
+
return importee;
|
|
191
|
+
}
|
|
192
|
+
let importeeQuery = getMarkoQuery(importee);
|
|
193
|
+
if (importeeQuery) {
|
|
194
|
+
importee = importee.slice(0, -importeeQuery.length);
|
|
195
|
+
} else if (ssr && linked && importer && importer !== devEntryFile && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
196
|
+
importeeQuery = serverEntryQuery;
|
|
197
|
+
} else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
|
|
198
|
+
importeeQuery = browserEntryQuery;
|
|
199
|
+
}
|
|
200
|
+
if (importeeQuery) {
|
|
201
|
+
const resolved = importee[0] === "." ? {
|
|
202
|
+
id: normalizePath(importer ? path.resolve(importer, "..", importee) : path.resolve(root, importee))
|
|
203
|
+
} : await this.resolve(importee, importer, resolveOpts);
|
|
204
|
+
if (resolved) {
|
|
205
|
+
resolved.id += importeeQuery;
|
|
213
206
|
}
|
|
207
|
+
return resolved;
|
|
214
208
|
}
|
|
215
209
|
return null;
|
|
216
210
|
},
|
|
217
211
|
async load(id) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const relativeFileName = path.relative(root, fileName);
|
|
229
|
-
const entryId = toEntryId(relativeFileName);
|
|
230
|
-
serverManifest != null ? serverManifest : serverManifest = {
|
|
231
|
-
entries: {},
|
|
232
|
-
chunksNeedingAssets: []
|
|
233
|
-
};
|
|
234
|
-
serverManifest.entries[entryId] = relativeFileName;
|
|
235
|
-
entryData = JSON.stringify(entryId);
|
|
236
|
-
} else {
|
|
237
|
-
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root) + browserEntryQuery))));
|
|
238
|
-
}
|
|
239
|
-
return getServerEntryTemplate({
|
|
240
|
-
fileName,
|
|
241
|
-
entryData,
|
|
242
|
-
runtimeId
|
|
212
|
+
switch (getMarkoQuery(id)) {
|
|
213
|
+
case serverEntryQuery: {
|
|
214
|
+
const fileName = id.slice(0, -serverEntryQuery.length);
|
|
215
|
+
let entryData;
|
|
216
|
+
if (isBuild) {
|
|
217
|
+
const relativeFileName = path.posix.relative(root, fileName);
|
|
218
|
+
const entryId = toEntryId(relativeFileName);
|
|
219
|
+
serverManifest ?? (serverManifest = {
|
|
220
|
+
entries: {},
|
|
221
|
+
chunksNeedingAssets: []
|
|
243
222
|
});
|
|
223
|
+
serverManifest.entries[entryId] = relativeFileName;
|
|
224
|
+
entryData = JSON.stringify(entryId);
|
|
225
|
+
} else {
|
|
226
|
+
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
|
|
244
227
|
}
|
|
245
|
-
|
|
246
|
-
|
|
228
|
+
return server_entry_template_default({
|
|
229
|
+
fileName,
|
|
230
|
+
entryData,
|
|
231
|
+
runtimeId
|
|
232
|
+
});
|
|
247
233
|
}
|
|
234
|
+
case browserEntryQuery:
|
|
235
|
+
return fs.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
|
|
248
236
|
}
|
|
249
237
|
return virtualFiles.get(id) || null;
|
|
250
238
|
},
|
|
239
|
+
async transformIndexHtml(html) {
|
|
240
|
+
if (isBuild) {
|
|
241
|
+
return html;
|
|
242
|
+
}
|
|
243
|
+
return html.replace(/(src\s*=\s*(['"])(?:(?!\2).)*\.marko)(?:\?((?:(?!\2).)*))?\2/gim, (_, prefix, quote, query) => prefix + browserEntryQuery + (query ? "&" + query : "") + quote);
|
|
244
|
+
},
|
|
251
245
|
async transform(source, id, ssr) {
|
|
252
246
|
const query = getMarkoQuery(id);
|
|
253
247
|
if (query && !query.startsWith(virtualFileQuery)) {
|
|
@@ -259,7 +253,7 @@ function markoPlugin(opts = {}) {
|
|
|
259
253
|
if (!isMarkoFile(id)) {
|
|
260
254
|
return null;
|
|
261
255
|
}
|
|
262
|
-
const compiled = await compiler.compile(source, id, ssr ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
256
|
+
const compiled = await compiler.compile(source, id, (typeof ssr === "object" ? ssr.ssr : ssr) ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
263
257
|
const { map, meta } = compiled;
|
|
264
258
|
let { code } = compiled;
|
|
265
259
|
if (query !== browserEntryQuery && devServer) {
|
|
@@ -315,8 +309,12 @@ if (import.meta.hot) import.meta.hot.accept();`;
|
|
|
315
309
|
const browserManifest = {};
|
|
316
310
|
for (const entryId in serverManifest.entries) {
|
|
317
311
|
const fileName = serverManifest.entries[entryId];
|
|
318
|
-
|
|
319
|
-
|
|
312
|
+
let chunkId = fileName + htmlExt;
|
|
313
|
+
let chunk = bundle[chunkId];
|
|
314
|
+
if (!chunk) {
|
|
315
|
+
chunkId = chunkId.replace(/\//g, "\\");
|
|
316
|
+
chunk = bundle[chunkId];
|
|
317
|
+
}
|
|
320
318
|
if ((chunk == null ? void 0 : chunk.type) === "asset") {
|
|
321
319
|
browserManifest[entryId] = await generateDocManifest(chunk.source.toString());
|
|
322
320
|
delete bundle[chunkId];
|
|
@@ -344,10 +342,10 @@ function isMarkoFile(id) {
|
|
|
344
342
|
function toHTMLEntries(root, serverEntries) {
|
|
345
343
|
const result = [];
|
|
346
344
|
for (const id in serverEntries) {
|
|
347
|
-
const markoFile = path.join(root, serverEntries[id]);
|
|
345
|
+
const markoFile = path.posix.join(root, serverEntries[id]);
|
|
348
346
|
const htmlFile = markoFile + htmlExt;
|
|
349
347
|
virtualFiles.set(htmlFile, {
|
|
350
|
-
code: generateInputDoc(markoFile
|
|
348
|
+
code: generateInputDoc(markoFile)
|
|
351
349
|
});
|
|
352
350
|
result.push(htmlFile);
|
|
353
351
|
}
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
9
|
for (var name in all)
|
|
11
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
11
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
17
|
}
|
|
19
|
-
return
|
|
18
|
+
return to;
|
|
20
19
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
__export(
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
var manifest_generator_exports = {};
|
|
23
|
+
__export(manifest_generator_exports, {
|
|
25
24
|
generateDocManifest: () => generateDocManifest,
|
|
26
25
|
generateInputDoc: () => generateInputDoc
|
|
27
26
|
});
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
27
|
+
module.exports = __toCommonJS(manifest_generator_exports);
|
|
28
|
+
var import_htmlparser2 = require("htmlparser2");
|
|
29
|
+
var import_domelementtype = require("domelementtype");
|
|
30
|
+
var import_domhandler = require("domhandler");
|
|
31
|
+
var import_serializer = __toESM(require("./serializer"));
|
|
32
32
|
const MARKER_COMMENT = "MARKO_VITE";
|
|
33
33
|
function generateDocManifest(rawHtml) {
|
|
34
34
|
return new Promise((resolve, reject) => {
|
|
@@ -55,7 +55,7 @@ function generateDocManifest(rawHtml) {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
function generateInputDoc(entry) {
|
|
58
|
-
return `<!DOCTYPE html><html><head><!--${MARKER_COMMENT}--></head><body><!--${MARKER_COMMENT}--><script type="module" src=${JSON.stringify(entry)}><\/script></body></html>`;
|
|
58
|
+
return `<!DOCTYPE html><html><head><!--${MARKER_COMMENT}--></head><body><!--${MARKER_COMMENT}--><script async type="module" src=${JSON.stringify(entry)}><\/script></body></html>`;
|
|
59
59
|
}
|
|
60
60
|
function serializeOrNull(nodes) {
|
|
61
61
|
const result = (0, import_serializer.default)(nodes);
|
|
@@ -1,59 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function generateDocManifest(rawHtml) {
|
|
7
|
-
return new Promise((resolve, reject) => {
|
|
8
|
-
const parser = new Parser(new DomHandler(function(err, dom) {
|
|
9
|
-
if (err) {
|
|
10
|
-
return reject(err);
|
|
11
|
-
}
|
|
12
|
-
const htmlChildren = dom.find(isElement).childNodes;
|
|
13
|
-
const headPrepend = [];
|
|
14
|
-
const head = [];
|
|
15
|
-
const bodyPrepend = [];
|
|
16
|
-
const body = [];
|
|
17
|
-
splitNodesByMarker(htmlChildren.find((node) => isElement(node) && node.tagName === "head").childNodes, headPrepend, head);
|
|
18
|
-
splitNodesByMarker(htmlChildren.find((node) => isElement(node) && node.tagName === "body").childNodes, bodyPrepend, body);
|
|
19
|
-
resolve({
|
|
20
|
-
"head-prepend": serializeOrNull(headPrepend),
|
|
21
|
-
head: serializeOrNull(head),
|
|
22
|
-
"body-prepend": serializeOrNull(bodyPrepend),
|
|
23
|
-
body: serializeOrNull(body)
|
|
24
|
-
});
|
|
25
|
-
}));
|
|
26
|
-
parser.write(rawHtml);
|
|
27
|
-
parser.end();
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
function generateInputDoc(entry) {
|
|
31
|
-
return `<!DOCTYPE html><html><head><!--${MARKER_COMMENT}--></head><body><!--${MARKER_COMMENT}--><script type="module" src=${JSON.stringify(entry)}><\/script></body></html>`;
|
|
32
|
-
}
|
|
33
|
-
function serializeOrNull(nodes) {
|
|
34
|
-
const result = serialize(nodes);
|
|
35
|
-
if (result.length) {
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
function splitNodesByMarker(nodes, before, after) {
|
|
41
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
42
|
-
let node = nodes[i];
|
|
43
|
-
if (node.data === MARKER_COMMENT) {
|
|
44
|
-
i++;
|
|
45
|
-
for (; i < nodes.length; i++) {
|
|
46
|
-
node = nodes[i];
|
|
47
|
-
after.push(node);
|
|
48
|
-
}
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
before.push(node);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
function isElement(node) {
|
|
55
|
-
return node.type === ElementType.Tag;
|
|
56
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
generateDocManifest,
|
|
3
|
+
generateInputDoc
|
|
4
|
+
} from "./chunk-MPTD6LHF.mjs";
|
|
5
|
+
import "./chunk-VL2HLMVE.mjs";
|
|
57
6
|
export {
|
|
58
7
|
generateDocManifest,
|
|
59
8
|
generateInputDoc
|
|
@@ -1,13 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
|
-
var
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
3
6
|
var __export = (target, all) => {
|
|
4
|
-
__markAsModule(target);
|
|
5
7
|
for (var name in all)
|
|
6
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
7
9
|
};
|
|
8
|
-
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var render_assets_transform_exports = {};
|
|
20
|
+
__export(render_assets_transform_exports, {
|
|
9
21
|
default: () => render_assets_transform_default
|
|
10
22
|
});
|
|
23
|
+
module.exports = __toCommonJS(render_assets_transform_exports);
|
|
11
24
|
var render_assets_transform_default = (tag, t) => {
|
|
12
25
|
const body = tag.get("body");
|
|
13
26
|
const tagName = tag.get("name").node.value;
|
|
@@ -15,7 +28,7 @@ var render_assets_transform_default = (tag, t) => {
|
|
|
15
28
|
body.pushContainer("body", renderAssetsCall(t, tagName));
|
|
16
29
|
};
|
|
17
30
|
function renderAssetsCall(t, slot) {
|
|
18
|
-
return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.
|
|
31
|
+
return t.markoPlaceholder(t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.stringLiteral(slot)]), false);
|
|
19
32
|
}
|
|
20
33
|
// Annotate the CommonJS export names for ESM import in node:
|
|
21
34
|
0 && (module.exports = {});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// src/render-assets-transform.ts
|
|
1
2
|
var render_assets_transform_default = (tag, t) => {
|
|
2
3
|
const body = tag.get("body");
|
|
3
4
|
const tagName = tag.get("name").node.value;
|
|
@@ -5,7 +6,7 @@ var render_assets_transform_default = (tag, t) => {
|
|
|
5
6
|
body.pushContainer("body", renderAssetsCall(t, tagName));
|
|
6
7
|
};
|
|
7
8
|
function renderAssetsCall(t, slot) {
|
|
8
|
-
return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.
|
|
9
|
+
return t.markoPlaceholder(t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.stringLiteral(slot)]), false);
|
|
9
10
|
}
|
|
10
11
|
export {
|
|
11
12
|
render_assets_transform_default as default
|
package/dist/serializer.js
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
6
|
var __export = (target, all) => {
|
|
9
|
-
__markAsModule(target);
|
|
10
7
|
for (var name in all)
|
|
11
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
9
|
};
|
|
13
|
-
var
|
|
14
|
-
if (
|
|
15
|
-
for (let key of __getOwnPropNames(
|
|
16
|
-
if (!__hasOwnProp.call(
|
|
17
|
-
__defProp(
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
15
|
}
|
|
19
|
-
return
|
|
16
|
+
return to;
|
|
20
17
|
};
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
__export(exports, {
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var serializer_exports = {};
|
|
20
|
+
__export(serializer_exports, {
|
|
25
21
|
default: () => serialize
|
|
26
22
|
});
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
module.exports = __toCommonJS(serializer_exports);
|
|
24
|
+
var import_domelementtype = require("domelementtype");
|
|
25
|
+
const voidElements = /* @__PURE__ */ new Set([
|
|
29
26
|
"area",
|
|
30
27
|
"base",
|
|
31
28
|
"br",
|
|
@@ -43,7 +40,7 @@ const voidElements = new Set([
|
|
|
43
40
|
]);
|
|
44
41
|
function serialize(nodes, parts) {
|
|
45
42
|
let curString = parts ? parts.pop() : "";
|
|
46
|
-
parts
|
|
43
|
+
parts ?? (parts = []);
|
|
47
44
|
for (const node of nodes) {
|
|
48
45
|
switch (node.type) {
|
|
49
46
|
case import_domelementtype.ElementType.Tag:
|