@marko/vite 2.0.0 → 2.1.1

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.
Files changed (50) hide show
  1. package/{components → dist/components}/vite-watch.marko +0 -0
  2. package/{components → dist/components}/vite.marko +0 -0
  3. package/dist/{cjs/index.d.ts → index.d.ts} +0 -0
  4. package/dist/index.js +415 -0
  5. package/dist/index.mjs +410 -0
  6. package/dist/{cjs/manifest-generator.d.ts → manifest-generator.d.ts} +0 -0
  7. package/dist/manifest-generator.js +88 -0
  8. package/dist/manifest-generator.mjs +60 -0
  9. package/dist/{cjs/render-assets-transform.d.ts → render-assets-transform.d.ts} +0 -0
  10. package/dist/render-assets-transform.js +21 -0
  11. package/dist/render-assets-transform.mjs +12 -0
  12. package/dist/{cjs/serializer.d.ts → serializer.d.ts} +0 -0
  13. package/dist/serializer.js +103 -0
  14. package/dist/serializer.mjs +78 -0
  15. package/dist/{cjs/server-entry-template.d.ts → server-entry-template.d.ts} +0 -0
  16. package/dist/server-entry-template.js +45 -0
  17. package/dist/server-entry-template.mjs +20 -0
  18. package/package.json +44 -42
  19. package/CHANGELOG.md +0 -72
  20. package/dist/cjs/esbuild-plugin.d.ts +0 -0
  21. package/dist/cjs/esbuild-plugin.js +0 -2
  22. package/dist/cjs/esbuild-plugin.js.map +0 -1
  23. package/dist/cjs/index.js +0 -417
  24. package/dist/cjs/index.js.map +0 -1
  25. package/dist/cjs/manifest-generator.js +0 -63
  26. package/dist/cjs/manifest-generator.js.map +0 -1
  27. package/dist/cjs/render-assets-transform.js +0 -12
  28. package/dist/cjs/render-assets-transform.js.map +0 -1
  29. package/dist/cjs/serializer.js +0 -81
  30. package/dist/cjs/serializer.js.map +0 -1
  31. package/dist/cjs/server-entry-template.js +0 -22
  32. package/dist/cjs/server-entry-template.js.map +0 -1
  33. package/dist/esm/esbuild-plugin.d.ts +0 -0
  34. package/dist/esm/esbuild-plugin.js +0 -2
  35. package/dist/esm/esbuild-plugin.js.map +0 -1
  36. package/dist/esm/index.d.ts +0 -10
  37. package/dist/esm/index.js +0 -413
  38. package/dist/esm/index.js.map +0 -1
  39. package/dist/esm/manifest-generator.d.ts +0 -11
  40. package/dist/esm/manifest-generator.js +0 -57
  41. package/dist/esm/manifest-generator.js.map +0 -1
  42. package/dist/esm/render-assets-transform.d.ts +0 -3
  43. package/dist/esm/render-assets-transform.js +0 -10
  44. package/dist/esm/render-assets-transform.js.map +0 -1
  45. package/dist/esm/serializer.d.ts +0 -2
  46. package/dist/esm/serializer.js +0 -78
  47. package/dist/esm/serializer.js.map +0 -1
  48. package/dist/esm/server-entry-template.d.ts +0 -6
  49. package/dist/esm/server-entry-template.js +0 -19
  50. package/dist/esm/server-entry-template.js.map +0 -1
package/dist/cjs/index.js DELETED
@@ -1,417 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const os_1 = tslib_1.__importDefault(require("os"));
5
- const fs_1 = tslib_1.__importDefault(require("fs"));
6
- const path_1 = tslib_1.__importDefault(require("path"));
7
- const crypto_1 = tslib_1.__importDefault(require("crypto"));
8
- const url_1 = require("url");
9
- const anymatch_1 = tslib_1.__importDefault(require("anymatch"));
10
- const server_entry_template_1 = tslib_1.__importDefault(require("./server-entry-template"));
11
- const manifest_generator_1 = require("./manifest-generator");
12
- const virtualFiles = new Map();
13
- const defaultCompiler = require.resolve("@marko/compiler");
14
- const queryReg = /\?marko-.+$/;
15
- const browserEntryQuery = "?marko-browser-entry";
16
- const serverEntryQuery = "?marko-server-entry";
17
- const virtualFileQuery = "?marko-virtual";
18
- const markoExt = ".marko";
19
- const htmlExt = ".html";
20
- const resolveOpts = { skipSelf: true };
21
- let tempDir;
22
- function markoPlugin(opts = {}) {
23
- var _a;
24
- // eslint-disable-next-line @typescript-eslint/no-var-requires
25
- const compiler = require(opts.compiler || defaultCompiler);
26
- const { runtimeId, linked = true } = opts;
27
- const baseConfig = {
28
- runtimeId,
29
- sourceMaps: true,
30
- writeVersionComment: false,
31
- cache: new Map(),
32
- babelConfig: {
33
- ...opts.babelConfig,
34
- caller: {
35
- name: "@marko/vite",
36
- supportsStaticESM: true,
37
- supportsDynamicImport: true,
38
- supportsTopLevelAwait: true,
39
- supportsExportNamespaceFrom: true,
40
- ...(_a = opts.babelConfig) === null || _a === void 0 ? void 0 : _a.caller,
41
- },
42
- },
43
- };
44
- const ssrConfig = {
45
- ...baseConfig,
46
- output: "html",
47
- };
48
- const domConfig = {
49
- ...baseConfig,
50
- resolveVirtualDependency(from, dep) {
51
- const query = `${virtualFileQuery}&id=${dep.virtualPath}`;
52
- const id = from + query;
53
- if (devServer) {
54
- const prev = virtualFiles.get(id);
55
- if (prev && prev.code !== dep.code) {
56
- devServer.moduleGraph.invalidateModule(devServer.moduleGraph.getModuleById(id));
57
- }
58
- }
59
- virtualFiles.set(id, dep);
60
- return `./${path_1.default.basename(from) + query}`;
61
- },
62
- output: "dom",
63
- };
64
- const hydrateConfig = {
65
- ...domConfig,
66
- output: "hydrate",
67
- };
68
- let root;
69
- let isBuild = false;
70
- let isSSRBuild = false;
71
- let devServer;
72
- let registeredTag = false;
73
- let serverManifest;
74
- const transformWatchFiles = new Map();
75
- const transformOptionalFiles = new Map();
76
- return [
77
- {
78
- name: "marko-vite:pre",
79
- enforce: "pre",
80
- async config(config, env) {
81
- var _a, _b, _c, _d, _e;
82
- var _f;
83
- root = config.root || process.cwd();
84
- isBuild = env.command === "build";
85
- isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
86
- if (!registeredTag) {
87
- // Here we inject either the watchMode vite tag, or the build one.
88
- registeredTag = path_1.default.resolve(__dirname.slice(0, __dirname.lastIndexOf("vite") + 4), "components", isBuild ? "vite.marko" : "vite-watch.marko");
89
- compiler.taglib.register("@marko/vite", {
90
- "<_vite>": {
91
- template: registeredTag,
92
- },
93
- "<head>": {
94
- transformer: require.resolve("./render-assets-transform"),
95
- },
96
- "<body>": {
97
- transformer: require.resolve("./render-assets-transform"),
98
- },
99
- });
100
- }
101
- if (!isBuild) {
102
- const lookup = compiler.taglib.buildLookup(root);
103
- const domRuntimeDeps = compiler.getRuntimeEntryFiles("dom", opts.translator);
104
- const htmlRuntimeDeps = compiler.getRuntimeEntryFiles("html", opts.translator);
105
- const taglibDeps = [];
106
- for (const name in lookup.taglibsById) {
107
- const taglib = lookup.taglibsById[name];
108
- if (/[\\/]node_modules[\\/](?!@marko[\\/])/.test(taglib.dirname)) {
109
- for (const tagName in taglib.tags) {
110
- const tag = taglib.tags[tagName];
111
- const entry = tag.template || tag.renderer;
112
- if (entry) {
113
- taglibDeps.push(entry.replace(/^.*?[\\/]node_modules[\\/]/, ""));
114
- }
115
- }
116
- }
117
- }
118
- const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
119
- const serverDeps = Array.from(new Set(htmlRuntimeDeps.concat(taglibDeps)));
120
- const optimizeDeps = ((_a = config.optimizeDeps) !== null && _a !== void 0 ? _a : (config.optimizeDeps = {}));
121
- (_b = optimizeDeps.include) !== null && _b !== void 0 ? _b : (optimizeDeps.include = []);
122
- optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => path_1.default.extname(dep) !== markoExt));
123
- (_c = optimizeDeps.exclude) !== null && _c !== void 0 ? _c : (optimizeDeps.exclude = []);
124
- optimizeDeps.exclude = optimizeDeps.exclude.concat(domDeps.filter((dep) => path_1.default.extname(dep) === markoExt));
125
- const ssr = ((_d = (_f = config).ssr) !== null && _d !== void 0 ? _d : (_f.ssr = {}));
126
- (_e = ssr.external) !== null && _e !== void 0 ? _e : (ssr.external = []);
127
- ssr.external = ssr.external.concat(serverDeps);
128
- // Vite cannot handle commonjs modules, which many Marko component libraries
129
- // use in conjunction with the `.marko` files. To support this
130
- // we tell Vite to ignore all `.marko` files in node_modules for the server.
131
- // and instead use the require hook.
132
- (await Promise.resolve().then(() => tslib_1.__importStar(require("@marko/compiler/register")))).default({
133
- ...ssrConfig,
134
- sourceMaps: "inline",
135
- modules: "cjs",
136
- });
137
- }
138
- },
139
- configureServer(_server) {
140
- ssrConfig.hot = domConfig.hot = true;
141
- devServer = _server;
142
- devServer.watcher.on("all", (type, filename) => {
143
- for (const [id, files] of transformWatchFiles) {
144
- if (anymatch_1.default(files, filename)) {
145
- devServer.watcher.emit("change", id);
146
- }
147
- }
148
- if (type === "add" || type === "unlink") {
149
- let clearedCache = false;
150
- for (const [id, files] of transformOptionalFiles) {
151
- if (anymatch_1.default(files, filename)) {
152
- if (!clearedCache) {
153
- baseConfig.cache.clear();
154
- clearedCache = true;
155
- }
156
- devServer.watcher.emit("change", id);
157
- }
158
- }
159
- }
160
- });
161
- },
162
- async buildStart(inputOptions) {
163
- if (isBuild && linked && !isSSRBuild) {
164
- const serverMetaFile = await getServerManifestFile(root);
165
- this.addWatchFile(serverMetaFile);
166
- try {
167
- serverManifest = JSON.parse(await fs_1.default.promises.readFile(serverMetaFile, "utf-8"));
168
- inputOptions.input = toHTMLEntries(root, serverManifest.entries);
169
- }
170
- catch (err) {
171
- this.error(`You must run the "ssr" build before the "browser" build.`);
172
- }
173
- if (isEmpty(inputOptions.input)) {
174
- this.error("No Marko files were found when compiling the server.");
175
- }
176
- }
177
- },
178
- async resolveId(importee, importer, _importOpts, ssr) {
179
- const importeeIsAbsolute = path_1.default.isAbsolute(importee);
180
- if (!importeeIsAbsolute || importee.startsWith(root)) {
181
- let importeeQuery = getMarkoQuery(importee);
182
- if (importeeQuery) {
183
- importee = importee.slice(0, -importeeQuery.length);
184
- }
185
- else if (ssr &&
186
- linked &&
187
- importer &&
188
- isMarkoFile(importee) &&
189
- !isMarkoFile(importer.replace(queryReg, ""))) {
190
- importeeQuery = serverEntryQuery;
191
- }
192
- else if (virtualFiles.has(importee)) {
193
- return importee;
194
- }
195
- if (importeeQuery) {
196
- const resolved = importeeIsAbsolute
197
- ? { id: importee }
198
- : importee[0] === "."
199
- ? {
200
- id: importer
201
- ? path_1.default.resolve(importer, "..", importee)
202
- : path_1.default.resolve(root, importee),
203
- }
204
- : await this.resolve(importee, importer, resolveOpts);
205
- if (resolved) {
206
- resolved.id += importeeQuery;
207
- }
208
- return resolved;
209
- }
210
- }
211
- return null;
212
- },
213
- async load(id) {
214
- const query = getMarkoQuery(id);
215
- if (query) {
216
- if (!id.startsWith(root)) {
217
- id = path_1.default.join(root, id);
218
- }
219
- switch (query) {
220
- case serverEntryQuery: {
221
- const fileName = id.slice(0, -serverEntryQuery.length);
222
- let entryData;
223
- if (isBuild) {
224
- const relativeFileName = path_1.default.relative(root, fileName);
225
- const entryId = toEntryId(relativeFileName);
226
- serverManifest !== null && serverManifest !== void 0 ? serverManifest : (serverManifest = {
227
- entries: {},
228
- chunksNeedingAssets: [],
229
- });
230
- serverManifest.entries[entryId] = relativeFileName;
231
- entryData = JSON.stringify(entryId);
232
- }
233
- else {
234
- entryData = JSON.stringify(await manifest_generator_1.generateDocManifest(await devServer.transformIndexHtml("/", manifest_generator_1.generateInputDoc(fileNameToURL(fileName, root) + browserEntryQuery))));
235
- }
236
- return server_entry_template_1.default({
237
- fileName,
238
- entryData,
239
- runtimeId,
240
- });
241
- }
242
- case browserEntryQuery:
243
- return fs_1.default.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
244
- }
245
- }
246
- return virtualFiles.get(id) || null;
247
- },
248
- async transform(source, id, ssr) {
249
- const query = getMarkoQuery(id);
250
- if (query && !query.startsWith(virtualFileQuery)) {
251
- id = id.slice(0, -query.length);
252
- if (query === serverEntryQuery) {
253
- id = `${id.slice(0, -markoExt.length)}.entry.marko`;
254
- }
255
- }
256
- if (!isMarkoFile(id)) {
257
- return null;
258
- }
259
- const compiled = await compiler.compile(source, id, ssr
260
- ? ssrConfig
261
- : query === browserEntryQuery
262
- ? hydrateConfig
263
- : domConfig);
264
- const { map, meta } = compiled;
265
- let { code } = compiled;
266
- if (query !== browserEntryQuery && devServer) {
267
- code += `\nif (import.meta.hot) import.meta.hot.accept();`;
268
- }
269
- if (devServer) {
270
- const templateName = getBasenameWithoutExt(id);
271
- const optionalFilePrefix = path_1.default.dirname(id) +
272
- path_1.default.sep +
273
- (templateName === "index" ? "" : `${templateName}.`);
274
- const optionalFiles = [
275
- `${optionalFilePrefix}style.*`,
276
- `${optionalFilePrefix}component.*`,
277
- `${optionalFilePrefix}component-browser.*`,
278
- `${optionalFilePrefix}marko-tag.json`,
279
- ];
280
- for (const file of optionalFiles) {
281
- this.addWatchFile(file);
282
- }
283
- for (const file of meta.watchFiles) {
284
- this.addWatchFile(file);
285
- }
286
- transformOptionalFiles.set(id, optionalFiles);
287
- transformWatchFiles.set(id, meta.watchFiles);
288
- }
289
- return { code, map };
290
- },
291
- },
292
- {
293
- name: "marko-vite:post",
294
- apply: "build",
295
- enforce: "post",
296
- async generateBundle(outputOptions, bundle, isWrite) {
297
- if (!linked) {
298
- return;
299
- }
300
- if (!isWrite) {
301
- this.error(`Linked builds are currently only supported when in "write" mode.`);
302
- }
303
- if (!serverManifest) {
304
- this.error("No Marko files were found when bundling the server in linked mode.");
305
- }
306
- if (isSSRBuild) {
307
- const dir = outputOptions.dir
308
- ? path_1.default.resolve(outputOptions.dir)
309
- : path_1.default.resolve(outputOptions.file, "..");
310
- for (const fileName in bundle) {
311
- const chunk = bundle[fileName];
312
- if (chunk.type === "chunk") {
313
- for (const id in chunk.modules) {
314
- if (id === registeredTag) {
315
- serverManifest.chunksNeedingAssets.push(path_1.default.resolve(dir, fileName));
316
- break;
317
- }
318
- }
319
- }
320
- }
321
- await fs_1.default.promises.writeFile(await getServerManifestFile(root), JSON.stringify(serverManifest));
322
- }
323
- else {
324
- const browserManifest = {};
325
- for (const entryId in serverManifest.entries) {
326
- const fileName = serverManifest.entries[entryId];
327
- const chunkId = fileName + htmlExt;
328
- const chunk = bundle[chunkId];
329
- if ((chunk === null || chunk === void 0 ? void 0 : chunk.type) === "asset") {
330
- browserManifest[entryId] = await manifest_generator_1.generateDocManifest(chunk.source.toString());
331
- delete bundle[chunkId];
332
- }
333
- else {
334
- this.error(`Marko template had unexpected output from vite, ${fileName}`);
335
- }
336
- }
337
- const manifestStr = `;var __MARKO_MANIFEST__=${JSON.stringify(browserManifest)};\n`;
338
- for (const fileName of serverManifest.chunksNeedingAssets) {
339
- await fs_1.default.promises.appendFile(fileName, manifestStr);
340
- }
341
- }
342
- },
343
- },
344
- ];
345
- }
346
- exports.default = markoPlugin;
347
- function getMarkoQuery(id) {
348
- var _a;
349
- return ((_a = queryReg.exec(id)) === null || _a === void 0 ? void 0 : _a[0]) || "";
350
- }
351
- function isMarkoFile(id) {
352
- return id.endsWith(markoExt);
353
- }
354
- function toHTMLEntries(root, serverEntries) {
355
- const result = [];
356
- for (const id in serverEntries) {
357
- const markoFile = path_1.default.join(root, serverEntries[id]);
358
- const htmlFile = markoFile + htmlExt;
359
- virtualFiles.set(htmlFile, {
360
- code: manifest_generator_1.generateInputDoc(markoFile + browserEntryQuery),
361
- });
362
- result.push(htmlFile);
363
- }
364
- return result;
365
- }
366
- async function getServerManifestFile(root) {
367
- return path_1.default.join(await getTempDir(root), "manifest.json");
368
- }
369
- function getTempDir(root) {
370
- return (tempDir ||
371
- (tempDir = (async () => {
372
- const dir = path_1.default.join(os_1.default.tmpdir(), `marko-vite-${crypto_1.default.createHash("SHA1").update(root).digest("hex")}`);
373
- try {
374
- const stat = await fs_1.default.promises.stat(dir);
375
- if (stat.isDirectory()) {
376
- return dir;
377
- }
378
- }
379
- catch (_a) {
380
- await fs_1.default.promises.mkdir(dir);
381
- return dir;
382
- }
383
- throw new Error("Unable to create temp directory");
384
- })()));
385
- }
386
- function toEntryId(id) {
387
- const lastSepIndex = id.lastIndexOf(path_1.default.sep);
388
- let name = id.slice(lastSepIndex + 1, id.indexOf(".", lastSepIndex));
389
- if (name === "index" || name === "template") {
390
- name = id.slice(id.lastIndexOf(path_1.default.sep, lastSepIndex - 1) + 1, lastSepIndex);
391
- }
392
- return `${name}_${crypto_1.default
393
- .createHash("SHA1")
394
- .update(id)
395
- .digest("base64")
396
- .replace(/[/+]/g, "-")
397
- .slice(0, 4)}`;
398
- }
399
- function fileNameToURL(fileName, root) {
400
- const relativeURL = path_1.default.posix.relative(url_1.pathToFileURL(root).pathname, url_1.pathToFileURL(fileName).pathname);
401
- if (relativeURL[0] === ".") {
402
- throw new Error("@marko/vite: Entry templates must exist under the current root directory.");
403
- }
404
- return `/${relativeURL}`;
405
- }
406
- function getBasenameWithoutExt(file) {
407
- const baseStart = file.lastIndexOf(path_1.default.sep) + 1;
408
- const extStart = file.indexOf(".", baseStart + 1);
409
- return file.slice(baseStart, extStart);
410
- }
411
- function isEmpty(obj) {
412
- for (const _ in obj) {
413
- return false;
414
- }
415
- return true;
416
- }
417
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateInputDoc = exports.generateDocManifest = void 0;
4
- const tslib_1 = require("tslib");
5
- const htmlparser2_1 = require("htmlparser2");
6
- const domelementtype_1 = require("domelementtype");
7
- const domhandler_1 = require("domhandler");
8
- const serializer_1 = tslib_1.__importDefault(require("./serializer"));
9
- const MARKER_COMMENT = "MARKO_VITE";
10
- function generateDocManifest(rawHtml) {
11
- return new Promise((resolve, reject) => {
12
- const parser = new htmlparser2_1.Parser(new domhandler_1.DomHandler(function (err, dom) {
13
- if (err) {
14
- return reject(err);
15
- }
16
- const htmlChildren = dom.find(isElement).childNodes;
17
- const headPrepend = [];
18
- const head = [];
19
- const bodyPrepend = [];
20
- const body = [];
21
- splitNodesByMarker(htmlChildren.find((node) => isElement(node) && node.tagName === "head").childNodes, headPrepend, head);
22
- splitNodesByMarker(htmlChildren.find((node) => isElement(node) && node.tagName === "body").childNodes, bodyPrepend, body);
23
- resolve({
24
- "head-prepend": serializeOrNull(headPrepend),
25
- head: serializeOrNull(head),
26
- "body-prepend": serializeOrNull(bodyPrepend),
27
- body: serializeOrNull(body),
28
- });
29
- }));
30
- parser.write(rawHtml);
31
- parser.end();
32
- });
33
- }
34
- exports.generateDocManifest = generateDocManifest;
35
- function generateInputDoc(entry) {
36
- return `<!DOCTYPE html><html><head><!--${MARKER_COMMENT}--></head><body><!--${MARKER_COMMENT}--><script type="module" src=${JSON.stringify(entry)}></script></body></html>`;
37
- }
38
- exports.generateInputDoc = generateInputDoc;
39
- function serializeOrNull(nodes) {
40
- const result = serializer_1.default(nodes);
41
- if (result.length) {
42
- return result;
43
- }
44
- return null;
45
- }
46
- function splitNodesByMarker(nodes, before, after) {
47
- for (let i = 0; i < nodes.length; i++) {
48
- let node = nodes[i];
49
- if (node.data === MARKER_COMMENT) {
50
- i++;
51
- for (; i < nodes.length; i++) {
52
- node = nodes[i];
53
- after.push(node);
54
- }
55
- break;
56
- }
57
- before.push(node);
58
- }
59
- }
60
- function isElement(node) {
61
- return node.type === domelementtype_1.ElementType.Tag;
62
- }
63
- //# sourceMappingURL=manifest-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"manifest-generator.js","sourceRoot":"","sources":["../../src/manifest-generator.ts"],"names":[],"mappings":";;;;AAAA,6CAAqC;AACrC,mDAA6C;AAC7C,2CAAgE;AAChE,sEAAqC;AAUrC,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,SAAgB,mBAAmB,CAAC,OAAe;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,IAAI,oBAAM,CACvB,IAAI,uBAAU,CAAC,UAAU,GAAG,EAAE,GAAG;YAC/B,IAAI,GAAG,EAAE;gBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;aACpB;YAED,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAE,CAAC,UAAU,CAAC;YACrD,MAAM,WAAW,GAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAW,EAAE,CAAC;YACxB,MAAM,WAAW,GAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAW,EAAE,CAAC;YACxB,kBAAkB,CACf,YAAY,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CACzC,CAAC,UAAU,EACxB,WAAW,EACX,IAAI,CACL,CAAC;YACF,kBAAkB,CACf,YAAY,CAAC,IAAI,CAChB,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CACzC,CAAC,UAAU,EACxB,WAAW,EACX,IAAI,CACL,CAAC;YAEF,OAAO,CAAC;gBACN,cAAc,EAAE,eAAe,CAAC,WAAW,CAAC;gBAC5C,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;gBAC3B,cAAc,EAAE,eAAe,CAAC,WAAW,CAAC;gBAC5C,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;aAC5B,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,CAAC,GAAG,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAvCD,kDAuCC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,kCAAkC,cAAc,uBAAuB,cAAc,gCAAgC,IAAI,CAAC,SAAS,CACxI,KAAK,CACN,0BAA0B,CAAC;AAC9B,CAAC;AAJD,4CAIC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,MAAM,GAAG,oBAAS,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;IACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAK,IAAgB,CAAC,IAAI,KAAK,cAAc,EAAE;YAC7C,CAAC,EAAE,CAAC;YACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5B,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAClB;YAED,MAAM;SACP;QAED,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnB;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,IAAI,KAAK,4BAAW,CAAC,GAAG,CAAC;AACvC,CAAC"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = (tag, t) => {
4
- const body = tag.get("body");
5
- const tagName = tag.get("name").node.value;
6
- body.unshiftContainer("body", renderAssetsCall(t, `${tagName}-prepend`));
7
- body.pushContainer("body", renderAssetsCall(t, tagName));
8
- };
9
- function renderAssetsCall(t, slot) {
10
- return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]);
11
- }
12
- //# sourceMappingURL=render-assets-transform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render-assets-transform.js","sourceRoot":"","sources":["../../src/render-assets-transform.ts"],"names":[],"mappings":";;AACA,kBAAe,CAAC,GAAmC,EAAE,CAAe,EAAE,EAAE;IACtE,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAA4B,CAAC,KAAK,CAAC;IACpE,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,SAAS,gBAAgB,CAAC,CAAe,EAAE,IAAY;IACrD,OAAO,CAAC,CAAC,cAAc,CACrB,CAAC,CAAC,gBAAgB,CAChB,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAC/D,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CACpC,EACD,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;AACJ,CAAC"}
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const domelementtype_1 = require("domelementtype");
4
- const voidElements = new Set([
5
- "area",
6
- "base",
7
- "br",
8
- "col",
9
- "embed",
10
- "hr",
11
- "img",
12
- "input",
13
- "link",
14
- "meta",
15
- "param",
16
- "source",
17
- "track",
18
- "wbr",
19
- ]);
20
- function serialize(nodes, parts) {
21
- let curString = parts ? parts.pop() : "";
22
- parts !== null && parts !== void 0 ? parts : (parts = []);
23
- for (const node of nodes) {
24
- switch (node.type) {
25
- case domelementtype_1.ElementType.Tag:
26
- case domelementtype_1.ElementType.Style:
27
- case domelementtype_1.ElementType.Script: {
28
- const tag = node;
29
- const { name } = tag;
30
- curString += `<${name}`;
31
- switch (tag.tagName) {
32
- case "script":
33
- parts.push(curString);
34
- curString = "";
35
- break;
36
- case "style":
37
- parts.push(curString);
38
- curString = "";
39
- break;
40
- case "link":
41
- if (tag.attribs.rel === "stylesheet") {
42
- parts.push(curString);
43
- curString = "";
44
- }
45
- break;
46
- }
47
- for (const attr of tag.attributes) {
48
- curString += ` ${attr.value === ""
49
- ? attr.name
50
- : `${attr.name}="${attr.value.replace(/"/g, "&#39;")}"`}`;
51
- }
52
- curString += ">";
53
- if (tag.children.length) {
54
- parts.push(curString);
55
- serialize(tag.children, parts);
56
- curString = parts.pop();
57
- }
58
- if (!voidElements.has(name)) {
59
- curString += `</${name}>`;
60
- }
61
- break;
62
- }
63
- case domelementtype_1.ElementType.Text: {
64
- const text = node.data;
65
- if (!/^\s*$/.test(text)) {
66
- curString += text;
67
- }
68
- break;
69
- }
70
- case domelementtype_1.ElementType.Comment:
71
- curString += `<!--${node.data}-->`;
72
- break;
73
- }
74
- }
75
- if (curString) {
76
- parts.push(curString);
77
- }
78
- return parts;
79
- }
80
- exports.default = serialize;
81
- //# sourceMappingURL=serializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serializer.js","sourceRoot":"","sources":["../../src/serializer.ts"],"names":[],"mappings":";;AAAA,mDAA6C;AAG7C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,OAAO;IACP,IAAI;IACJ,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,KAAK;CACN,CAAC,CAAC;AAEH,SAAwB,SAAS,CAAC,KAAa,EAAE,KAAgB;IAC/D,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,KAAK,CAAC,GAAG,EAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,KAAK,aAAL,KAAK,cAAL,KAAK,IAAL,KAAK,GAAK,EAAE,EAAC;IAEb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,4BAAW,CAAC,GAAG,CAAC;YACrB,KAAK,4BAAW,CAAC,KAAK,CAAC;YACvB,KAAK,4BAAW,CAAC,MAAM,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,IAAe,CAAC;gBAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;gBACrB,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;gBAExB,QAAQ,GAAG,CAAC,OAAO,EAAE;oBACnB,KAAK,QAAQ;wBACX,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACtB,SAAS,GAAG,EAAE,CAAC;wBACf,MAAM;oBACR,KAAK,OAAO;wBACV,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBACtB,SAAS,GAAG,EAAE,CAAC;wBACf,MAAM;oBACR,KAAK,MAAM;wBACT,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,YAAY,EAAE;4BACpC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BACtB,SAAS,GAAG,EAAE,CAAC;yBAChB;wBACD,MAAM;iBACT;gBAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE;oBACjC,SAAS,IAAI,IACX,IAAI,CAAC,KAAK,KAAK,EAAE;wBACf,CAAC,CAAC,IAAI,CAAC,IAAI;wBACX,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GACxD,EAAE,CAAC;iBACJ;gBAED,SAAS,IAAI,GAAG,CAAC;gBAEjB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;oBACvB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACtB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC/B,SAAS,GAAG,KAAK,CAAC,GAAG,EAAY,CAAC;iBACnC;gBAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBAC3B,SAAS,IAAI,KAAK,IAAI,GAAG,CAAC;iBAC3B;gBAED,MAAM;aACP;YACD,KAAK,4BAAW,CAAC,IAAI,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAI,IAAa,CAAC,IAAI,CAAC;gBAEjC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACvB,SAAS,IAAI,IAAI,CAAC;iBACnB;gBAED,MAAM;aACP;YACD,KAAK,4BAAW,CAAC,OAAO;gBACtB,SAAS,IAAI,OAAQ,IAAgB,CAAC,IAAI,KAAK,CAAC;gBAChD,MAAM;SACT;KACF;IAED,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACvB;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAxED,4BAwEC"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const path_1 = tslib_1.__importDefault(require("path"));
5
- exports.default = async (opts) => {
6
- const fileNameStr = JSON.stringify(`./${path_1.default.basename(opts.fileName)}`);
7
- return `import template from ${fileNameStr};
8
- export * from ${fileNameStr};
9
- $ const $global = out.global;
10
- ${opts.runtimeId
11
- ? `$ $global.runtimeId = ${JSON.stringify(opts.runtimeId)};\n`
12
- : ""}$ ($global.___viteEntries || ($global.___viteEntries = [])).push(${opts.entryData});
13
- <_vite slot="head-prepend"/>
14
- <_vite slot="head"/>
15
- <_vite slot="body-prepend"/>
16
- <\${template} ...input/>
17
- <init-components/>
18
- <await-reorderer/>
19
- <_vite slot="body"/>
20
- `;
21
- };
22
- //# sourceMappingURL=server-entry-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-entry-template.js","sourceRoot":"","sources":["../../src/server-entry-template.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,kBAAe,KAAK,EAAE,IAIrB,EAAmB,EAAE;IACpB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,wBAAwB,WAAW;gBAC5B,WAAW;;EAGzB,IAAI,CAAC,SAAS;QACZ,CAAC,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;QAC9D,CAAC,CAAC,EACN,oEACI,IAAI,CAAC,SACP;;;;;;;;CAQD,CAAC;AACF,CAAC,CAAC"}
File without changes
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=esbuild-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"esbuild-plugin.js","sourceRoot":"","sources":["../../src/esbuild-plugin.ts"],"names":[],"mappings":""}