@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/dist/index.mjs CHANGED
@@ -1,157 +1,150 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
- var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __getProtoOf = Object.getPrototypeOf;
9
- var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
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 getServerEntryTemplate from "./server-entry-template";
43
- import {
44
- generateInputDoc,
45
- generateDocManifest
46
- } from "./manifest-generator";
47
- const virtualFiles = new Map();
48
- const queryReg = /\?marko-.+$/;
49
- const browserEntryQuery = "?marko-browser-entry";
50
- const serverEntryQuery = "?marko-server-entry";
51
- const virtualFileQuery = "?marko-virtual";
52
- const markoExt = ".marko";
53
- const htmlExt = ".html";
54
- const resolveOpts = { skipSelf: true };
55
- let tempDir;
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
- cache: new Map(),
65
- babelConfig: __spreadProps(__spreadValues({}, opts.babelConfig), {
66
- caller: __spreadValues({
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
- }, (_a = opts.babelConfig) == null ? void 0 : _a.caller)
73
- })
49
+ supportsExportNamespaceFrom: true,
50
+ ...(_a = opts.babelConfig) == null ? void 0 : _a.caller
51
+ }
52
+ }
74
53
  };
75
- const ssrConfig = __spreadProps(__spreadValues({}, baseConfig), {
76
- output: "html"
77
- });
78
- const domConfig = __spreadProps(__spreadValues({}, baseConfig), {
79
- resolveVirtualDependency(from, dep) {
80
- const query = `${virtualFileQuery}&id=${dep.virtualPath}`;
81
- const id = from + query;
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
- virtualFiles.set(id, dep);
89
- return `./${path.basename(from) + query}`;
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 = __spreadProps(__spreadValues({}, domConfig), {
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, _d, _e;
110
- compiler != null ? compiler : compiler = await Promise.resolve().then(() => __toModule(require(opts.compiler || "@marko/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(import.meta.url, "../render-assets-transform");
116
- registeredTag = path.resolve(import.meta.url, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
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
- if (!isBuild) {
124
- const lookup = compiler.taglib.buildLookup(root);
125
- const domRuntimeDeps = compiler.getRuntimeEntryFiles("dom", opts.translator);
126
- const htmlRuntimeDeps = compiler.getRuntimeEntryFiles("html", opts.translator);
127
- const taglibDeps = [];
128
- for (const name in lookup.taglibsById) {
129
- const taglib = lookup.taglibsById[name];
130
- if (/[\\/]node_modules[\\/](?!@marko[\\/])/.test(taglib.dirname)) {
131
- for (const tagName in taglib.tags) {
132
- const tag = taglib.tags[tagName];
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, _importOpts, ssr) {
195
- const importeeIsAbsolute = path.isAbsolute(importee);
196
- if (!importeeIsAbsolute || importee.startsWith(root)) {
197
- let importeeQuery = getMarkoQuery(importee);
198
- if (importeeQuery) {
199
- importee = importee.slice(0, -importeeQuery.length);
200
- } else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
201
- importeeQuery = serverEntryQuery;
202
- } else if (virtualFiles.has(importee)) {
203
- return importee;
204
- }
205
- if (importeeQuery) {
206
- const resolved = importeeIsAbsolute ? { id: importee } : importee[0] === "." ? {
207
- id: importer ? path.resolve(importer, "..", importee) : path.resolve(root, importee)
208
- } : await this.resolve(importee, importer, resolveOpts);
209
- if (resolved) {
210
- resolved.id += importeeQuery;
211
- }
212
- return resolved;
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
- const query = getMarkoQuery(id);
219
- if (query) {
220
- if (!id.startsWith(root)) {
221
- id = path.join(root, id);
222
- }
223
- switch (query) {
224
- case serverEntryQuery: {
225
- const fileName = id.slice(0, -serverEntryQuery.length);
226
- let entryData;
227
- if (isBuild) {
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
- case browserEntryQuery:
246
- return fs.promises.readFile(id.slice(0, -browserEntryQuery.length), "utf-8");
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
- const chunkId = fileName + htmlExt;
319
- const chunk = bundle[chunkId];
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 + browserEntryQuery)
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 __reExport = (target, module2, desc) => {
14
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
- for (let key of __getOwnPropNames(module2))
16
- if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 target;
18
+ return to;
20
19
  };
21
- var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
23
- };
24
- __export(exports, {
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
- var import_htmlparser2 = __toModule(require("htmlparser2"));
29
- var import_domelementtype = __toModule(require("domelementtype"));
30
- var import_domhandler = __toModule(require("domhandler"));
31
- var import_serializer = __toModule(require("./serializer"));
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 { Parser } from "htmlparser2";
2
- import { ElementType } from "domelementtype";
3
- import { DomHandler } from "domhandler";
4
- import serialize from "./serializer";
5
- const MARKER_COMMENT = "MARKO_VITE";
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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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
- __export(exports, {
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.identifier("out"), t.stringLiteral(slot)]);
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.identifier("out"), t.stringLiteral(slot)]);
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
@@ -1,31 +1,28 @@
1
- var __create = Object.create;
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 __reExport = (target, module2, desc) => {
14
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
- for (let key of __getOwnPropNames(module2))
16
- if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
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 target;
16
+ return to;
20
17
  };
21
- var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
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
- var import_domelementtype = __toModule(require("domelementtype"));
28
- const voidElements = new Set([
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 != null ? parts : parts = [];
43
+ parts ?? (parts = []);
47
44
  for (const node of nodes) {
48
45
  switch (node.type) {
49
46
  case import_domelementtype.ElementType.Tag: