@marko/vite 2.2.0 → 2.2.4

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.
@@ -0,0 +1,22 @@
1
+ // src/server-entry-template.ts
2
+ import path from "path";
3
+ var server_entry_template_default = async (opts) => {
4
+ const fileNameStr = JSON.stringify(`./${path.basename(opts.fileName)}`);
5
+ return `import template from ${fileNameStr};
6
+ export * from ${fileNameStr};
7
+ $ const $global = out.global;
8
+ ${opts.runtimeId ? `$ $global.runtimeId = ${JSON.stringify(opts.runtimeId)};
9
+ ` : ""}$ ($global.___viteEntries || ($global.___viteEntries = [])).push(${opts.entryData});
10
+ <_vite slot="head-prepend"/>
11
+ <_vite slot="head"/>
12
+ <_vite slot="body-prepend"/>
13
+ <\${template} ...input/>
14
+ <init-components/>
15
+ <await-reorderer/>
16
+ <_vite slot="body"/>
17
+ `;
18
+ };
19
+
20
+ export {
21
+ server_entry_template_default
22
+ };
@@ -0,0 +1,65 @@
1
+ import {
2
+ serialize
3
+ } from "./chunk-VL2HLMVE.mjs";
4
+
5
+ // src/manifest-generator.ts
6
+ import { Parser } from "htmlparser2";
7
+ import { ElementType } from "domelementtype";
8
+ import { DomHandler } from "domhandler";
9
+ var MARKER_COMMENT = "MARKO_VITE";
10
+ function generateDocManifest(rawHtml) {
11
+ return new Promise((resolve, reject) => {
12
+ const parser = new Parser(new 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
+ function generateInputDoc(entry) {
35
+ return `<!DOCTYPE html><html><head><!--${MARKER_COMMENT}--></head><body><!--${MARKER_COMMENT}--><script async type="module" src=${JSON.stringify(entry)}><\/script></body></html>`;
36
+ }
37
+ function serializeOrNull(nodes) {
38
+ const result = serialize(nodes);
39
+ if (result.length) {
40
+ return result;
41
+ }
42
+ return null;
43
+ }
44
+ function splitNodesByMarker(nodes, before, after) {
45
+ for (let i = 0; i < nodes.length; i++) {
46
+ let node = nodes[i];
47
+ if (node.data === MARKER_COMMENT) {
48
+ i++;
49
+ for (; i < nodes.length; i++) {
50
+ node = nodes[i];
51
+ after.push(node);
52
+ }
53
+ break;
54
+ }
55
+ before.push(node);
56
+ }
57
+ }
58
+ function isElement(node) {
59
+ return node.type === ElementType.Tag;
60
+ }
61
+
62
+ export {
63
+ generateDocManifest,
64
+ generateInputDoc
65
+ };
@@ -0,0 +1,24 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+
21
+ export {
22
+ __spreadValues,
23
+ __spreadProps
24
+ };
@@ -0,0 +1,80 @@
1
+ // src/serializer.ts
2
+ import { ElementType } from "domelementtype";
3
+ var voidElements = /* @__PURE__ */ new Set([
4
+ "area",
5
+ "base",
6
+ "br",
7
+ "col",
8
+ "embed",
9
+ "hr",
10
+ "img",
11
+ "input",
12
+ "link",
13
+ "meta",
14
+ "param",
15
+ "source",
16
+ "track",
17
+ "wbr"
18
+ ]);
19
+ function serialize(nodes, parts) {
20
+ let curString = parts ? parts.pop() : "";
21
+ parts ?? (parts = []);
22
+ for (const node of nodes) {
23
+ switch (node.type) {
24
+ case ElementType.Tag:
25
+ case ElementType.Style:
26
+ case ElementType.Script: {
27
+ const tag = node;
28
+ const { name } = tag;
29
+ curString += `<${name}`;
30
+ switch (tag.tagName) {
31
+ case "script":
32
+ parts.push(curString);
33
+ curString = "";
34
+ break;
35
+ case "style":
36
+ parts.push(curString);
37
+ curString = "";
38
+ break;
39
+ case "link":
40
+ if (tag.attribs.rel === "stylesheet") {
41
+ parts.push(curString);
42
+ curString = "";
43
+ }
44
+ break;
45
+ }
46
+ for (const attr of tag.attributes) {
47
+ curString += ` ${attr.value === "" ? attr.name : `${attr.name}="${attr.value.replace(/"/g, "&#39;")}"`}`;
48
+ }
49
+ curString += ">";
50
+ if (tag.children.length) {
51
+ parts.push(curString);
52
+ serialize(tag.children, parts);
53
+ curString = parts.pop();
54
+ }
55
+ if (!voidElements.has(name)) {
56
+ curString += `</${name}>`;
57
+ }
58
+ break;
59
+ }
60
+ case ElementType.Text: {
61
+ const text = node.data;
62
+ if (!/^\s*$/.test(text)) {
63
+ curString += text;
64
+ }
65
+ break;
66
+ }
67
+ case ElementType.Comment:
68
+ curString += `<!--${node.data}-->`;
69
+ break;
70
+ }
71
+ }
72
+ if (curString) {
73
+ parts.push(curString);
74
+ }
75
+ return parts;
76
+ }
77
+
78
+ export {
79
+ serialize
80
+ };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as vite from "vite";
1
+ import type * as vite from "vite";
2
2
  import type * as Compiler from "@marko/compiler";
3
3
  export interface Options {
4
4
  linked?: boolean;
package/dist/index.js CHANGED
@@ -23,32 +23,37 @@ var __spreadValues = (a, b) => {
23
23
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
25
25
  var __export = (target, all) => {
26
- __markAsModule(target);
27
26
  for (var name in all)
28
27
  __defProp(target, name, { get: all[name], enumerable: true });
29
28
  };
30
- var __reExport = (target, module2, desc) => {
29
+ var __reExport = (target, module2, copyDefault, desc) => {
31
30
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
32
31
  for (let key of __getOwnPropNames(module2))
33
- if (!__hasOwnProp.call(target, key) && key !== "default")
32
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
34
33
  __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
35
34
  }
36
35
  return target;
37
36
  };
38
- var __toModule = (module2) => {
39
- 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);
37
+ var __toESM = (module2, isNodeMode) => {
38
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
40
39
  };
41
- __export(exports, {
40
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
41
+ return (module2, temp) => {
42
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
43
+ };
44
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
45
+ var src_exports = {};
46
+ __export(src_exports, {
42
47
  default: () => markoPlugin
43
48
  });
44
- var import_os = __toModule(require("os"));
45
- var import_fs = __toModule(require("fs"));
46
- var import_path = __toModule(require("path"));
47
- var import_crypto = __toModule(require("crypto"));
48
- var import_url = __toModule(require("url"));
49
- var import_anymatch = __toModule(require("anymatch"));
50
- var import_server_entry_template = __toModule(require("./server-entry-template"));
51
- var import_manifest_generator = __toModule(require("./manifest-generator"));
49
+ var import_os = __toESM(require("os"));
50
+ var import_fs = __toESM(require("fs"));
51
+ var import_path = __toESM(require("path"));
52
+ var import_crypto = __toESM(require("crypto"));
53
+ var import_anymatch = __toESM(require("anymatch"));
54
+ var import_url = require("url");
55
+ var import_server_entry_template = __toESM(require("./server-entry-template"));
56
+ var import_manifest_generator = require("./manifest-generator");
52
57
  const import_meta = {};
53
58
  const virtualFiles = /* @__PURE__ */ new Map();
54
59
  const queryReg = /\?marko-.+$/;
@@ -58,6 +63,7 @@ const virtualFileQuery = "?marko-virtual";
58
63
  const markoExt = ".marko";
59
64
  const htmlExt = ".html";
60
65
  const resolveOpts = { skipSelf: true };
66
+ const thisFile = typeof __filename === "string" ? __filename : (0, import_url.fileURLToPath)(import_meta.url);
61
67
  let tempDir;
62
68
  function markoPlugin(opts = {}) {
63
69
  var _a;
@@ -112,14 +118,13 @@ function markoPlugin(opts = {}) {
112
118
  name: "marko-vite:pre",
113
119
  enforce: "pre",
114
120
  async config(config, env) {
115
- var _a2, _b, _c, _d, _e;
116
- compiler != null ? compiler : compiler = await Promise.resolve().then(() => __toModule(require(opts.compiler || "@marko/compiler")));
121
+ compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
117
122
  root = config.root || process.cwd();
118
123
  isBuild = env.command === "build";
119
124
  isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
120
125
  if (!registeredTag) {
121
- const transformer = import_path.default.resolve(__filename, "../render-assets-transform");
122
- registeredTag = import_path.default.resolve(__filename, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
126
+ const transformer = import_path.default.resolve(thisFile, "../render-assets-transform");
127
+ registeredTag = import_path.default.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
123
128
  compiler.taglib.register("@marko/vite", {
124
129
  "<_vite>": { template: registeredTag },
125
130
  "<head>": { transformer },
@@ -145,15 +150,15 @@ function markoPlugin(opts = {}) {
145
150
  }
146
151
  const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
147
152
  const serverDeps = Array.from(new Set(htmlRuntimeDeps.concat(taglibDeps)));
148
- const optimizeDeps = (_a2 = config.optimizeDeps) != null ? _a2 : config.optimizeDeps = {};
149
- (_b = optimizeDeps.include) != null ? _b : optimizeDeps.include = [];
153
+ const optimizeDeps = config.optimizeDeps ?? (config.optimizeDeps = {});
154
+ optimizeDeps.include ?? (optimizeDeps.include = []);
150
155
  optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => import_path.default.extname(dep) !== markoExt));
151
- (_c = optimizeDeps.exclude) != null ? _c : optimizeDeps.exclude = [];
156
+ optimizeDeps.exclude ?? (optimizeDeps.exclude = []);
152
157
  optimizeDeps.exclude = optimizeDeps.exclude.concat(domDeps.filter((dep) => import_path.default.extname(dep) === markoExt));
153
- const ssr = (_d = config.ssr) != null ? _d : config.ssr = {};
154
- (_e = ssr.external) != null ? _e : ssr.external = [];
158
+ const ssr = config.ssr ?? (config.ssr = {});
159
+ ssr.external ?? (ssr.external = []);
155
160
  ssr.external = ssr.external.concat(serverDeps);
156
- (await Promise.resolve().then(() => __toModule(require("@marko/compiler/register")))).default(__spreadProps(__spreadValues({}, ssrConfig), {
161
+ (await import("@marko/compiler/register")).default(__spreadProps(__spreadValues({}, ssrConfig), {
157
162
  sourceMaps: "inline",
158
163
  modules: "cjs"
159
164
  }));
@@ -198,6 +203,7 @@ function markoPlugin(opts = {}) {
198
203
  }
199
204
  },
200
205
  async resolveId(importee, importer, importOpts, ssr = importOpts.ssr) {
206
+ var _a2;
201
207
  if (virtualFiles.has(importee)) {
202
208
  return importee;
203
209
  }
@@ -206,7 +212,7 @@ function markoPlugin(opts = {}) {
206
212
  importee = importee.slice(0, -importeeQuery.length);
207
213
  } else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
208
214
  importeeQuery = serverEntryQuery;
209
- } else if (!ssr && isBuild && importer && isMarkoFile(importee) && this.getModuleInfo(importer).isEntry) {
215
+ } else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
210
216
  importeeQuery = browserEntryQuery;
211
217
  }
212
218
  if (importeeQuery) {
@@ -233,10 +239,10 @@ function markoPlugin(opts = {}) {
233
239
  if (isBuild) {
234
240
  const relativeFileName = import_path.default.relative(root, fileName);
235
241
  const entryId = toEntryId(relativeFileName);
236
- serverManifest != null ? serverManifest : serverManifest = {
242
+ serverManifest ?? (serverManifest = {
237
243
  entries: {},
238
244
  chunksNeedingAssets: []
239
- };
245
+ });
240
246
  serverManifest.entries[entryId] = relativeFileName;
241
247
  entryData = JSON.stringify(entryId);
242
248
  } else {
@@ -409,5 +415,6 @@ function isEmpty(obj) {
409
415
  }
410
416
  return true;
411
417
  }
418
+ module.exports = __toCommonJS(src_exports);
412
419
  // Annotate the CommonJS export names for ESM import in node:
413
420
  0 && (module.exports = {});
package/dist/index.mjs CHANGED
@@ -1,58 +1,33 @@
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
+ generateDocManifest,
3
+ generateInputDoc
4
+ } from "./chunk-MPTD6LHF.mjs";
5
+ import "./chunk-VL2HLMVE.mjs";
6
+ import {
7
+ server_entry_template_default
8
+ } from "./chunk-HWRQJHCN.mjs";
9
+ import {
10
+ __spreadProps,
11
+ __spreadValues
12
+ } from "./chunk-SOEV5HRE.mjs";
13
+
14
+ // src/index.ts
36
15
  import os from "os";
37
16
  import fs from "fs";
38
17
  import path from "path";
39
18
  import crypto from "crypto";
40
- import { pathToFileURL } from "url";
41
19
  import anyMatch from "anymatch";
42
- import getServerEntryTemplate from "./server-entry-template";
43
- import {
44
- generateInputDoc,
45
- generateDocManifest
46
- } from "./manifest-generator";
47
- const virtualFiles = /* @__PURE__ */ 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;
20
+ import { pathToFileURL, fileURLToPath } from "url";
21
+ var virtualFiles = /* @__PURE__ */ new Map();
22
+ var queryReg = /\?marko-.+$/;
23
+ var browserEntryQuery = "?marko-browser-entry";
24
+ var serverEntryQuery = "?marko-server-entry";
25
+ var virtualFileQuery = "?marko-virtual";
26
+ var markoExt = ".marko";
27
+ var htmlExt = ".html";
28
+ var resolveOpts = { skipSelf: true };
29
+ var thisFile = typeof __filename === "string" ? __filename : fileURLToPath(import.meta.url);
30
+ var tempDir;
56
31
  function markoPlugin(opts = {}) {
57
32
  var _a;
58
33
  let compiler;
@@ -106,14 +81,13 @@ function markoPlugin(opts = {}) {
106
81
  name: "marko-vite:pre",
107
82
  enforce: "pre",
108
83
  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")));
84
+ compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
111
85
  root = config.root || process.cwd();
112
86
  isBuild = env.command === "build";
113
87
  isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
114
88
  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");
89
+ const transformer = path.resolve(thisFile, "../render-assets-transform");
90
+ registeredTag = path.resolve(thisFile, "../components", isBuild ? "vite.marko" : "vite-watch.marko");
117
91
  compiler.taglib.register("@marko/vite", {
118
92
  "<_vite>": { template: registeredTag },
119
93
  "<head>": { transformer },
@@ -139,15 +113,15 @@ function markoPlugin(opts = {}) {
139
113
  }
140
114
  const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
141
115
  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 = [];
116
+ const optimizeDeps = config.optimizeDeps ?? (config.optimizeDeps = {});
117
+ optimizeDeps.include ?? (optimizeDeps.include = []);
144
118
  optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => path.extname(dep) !== markoExt));
145
- (_c = optimizeDeps.exclude) != null ? _c : optimizeDeps.exclude = [];
119
+ optimizeDeps.exclude ?? (optimizeDeps.exclude = []);
146
120
  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 = [];
121
+ const ssr = config.ssr ?? (config.ssr = {});
122
+ ssr.external ?? (ssr.external = []);
149
123
  ssr.external = ssr.external.concat(serverDeps);
150
- (await Promise.resolve().then(() => __toModule(require("@marko/compiler/register")))).default(__spreadProps(__spreadValues({}, ssrConfig), {
124
+ (await import("@marko/compiler/register")).default(__spreadProps(__spreadValues({}, ssrConfig), {
151
125
  sourceMaps: "inline",
152
126
  modules: "cjs"
153
127
  }));
@@ -192,6 +166,7 @@ function markoPlugin(opts = {}) {
192
166
  }
193
167
  },
194
168
  async resolveId(importee, importer, importOpts, ssr = importOpts.ssr) {
169
+ var _a2;
195
170
  if (virtualFiles.has(importee)) {
196
171
  return importee;
197
172
  }
@@ -200,7 +175,7 @@ function markoPlugin(opts = {}) {
200
175
  importee = importee.slice(0, -importeeQuery.length);
201
176
  } else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
202
177
  importeeQuery = serverEntryQuery;
203
- } else if (!ssr && isBuild && importer && isMarkoFile(importee) && this.getModuleInfo(importer).isEntry) {
178
+ } else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
204
179
  importeeQuery = browserEntryQuery;
205
180
  }
206
181
  if (importeeQuery) {
@@ -227,16 +202,16 @@ function markoPlugin(opts = {}) {
227
202
  if (isBuild) {
228
203
  const relativeFileName = path.relative(root, fileName);
229
204
  const entryId = toEntryId(relativeFileName);
230
- serverManifest != null ? serverManifest : serverManifest = {
205
+ serverManifest ?? (serverManifest = {
231
206
  entries: {},
232
207
  chunksNeedingAssets: []
233
- };
208
+ });
234
209
  serverManifest.entries[entryId] = relativeFileName;
235
210
  entryData = JSON.stringify(entryId);
236
211
  } else {
237
212
  entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
238
213
  }
239
- return getServerEntryTemplate({
214
+ return server_entry_template_default({
240
215
  fileName,
241
216
  entryData,
242
217
  runtimeId
@@ -6,29 +6,34 @@ var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
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) => {
12
+ var __reExport = (target, module2, copyDefault, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
- if (!__hasOwnProp.call(target, key) && key !== "default")
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
17
16
  __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
18
17
  }
19
18
  return target;
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);
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
23
22
  };
24
- __export(exports, {
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var manifest_generator_exports = {};
29
+ __export(manifest_generator_exports, {
25
30
  generateDocManifest: () => generateDocManifest,
26
31
  generateInputDoc: () => generateInputDoc
27
32
  });
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"));
33
+ var import_htmlparser2 = require("htmlparser2");
34
+ var import_domelementtype = require("domelementtype");
35
+ var import_domhandler = require("domhandler");
36
+ var import_serializer = __toESM(require("./serializer"));
32
37
  const MARKER_COMMENT = "MARKO_VITE";
33
38
  function generateDocManifest(rawHtml) {
34
39
  return new Promise((resolve, reject) => {
@@ -81,6 +86,7 @@ function splitNodesByMarker(nodes, before, after) {
81
86
  function isElement(node) {
82
87
  return node.type === import_domelementtype.ElementType.Tag;
83
88
  }
89
+ module.exports = __toCommonJS(manifest_generator_exports);
84
90
  // Annotate the CommonJS export names for ESM import in node:
85
91
  0 && (module.exports = {
86
92
  generateDocManifest,
@@ -1,59 +1,9 @@
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 async 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";
6
+ import "./chunk-SOEV5HRE.mjs";
57
7
  export {
58
8
  generateDocManifest,
59
9
  generateInputDoc
@@ -1,11 +1,27 @@
1
1
  var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
2
5
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
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 __reExport = (target, module2, copyDefault, desc) => {
11
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
12
+ for (let key of __getOwnPropNames(module2))
13
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
14
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
15
+ }
16
+ return target;
17
+ };
18
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
19
+ return (module2, temp) => {
20
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
+ };
22
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+ var render_assets_transform_exports = {};
24
+ __export(render_assets_transform_exports, {
9
25
  default: () => render_assets_transform_default
10
26
  });
11
27
  var render_assets_transform_default = (tag, t) => {
@@ -17,5 +33,6 @@ var render_assets_transform_default = (tag, t) => {
17
33
  function renderAssetsCall(t, slot) {
18
34
  return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]);
19
35
  }
36
+ module.exports = __toCommonJS(render_assets_transform_exports);
20
37
  // Annotate the CommonJS export names for ESM import in node:
21
38
  0 && (module.exports = {});
@@ -1,3 +1,6 @@
1
+ import "./chunk-SOEV5HRE.mjs";
2
+
3
+ // src/render-assets-transform.ts
1
4
  var render_assets_transform_default = (tag, t) => {
2
5
  const body = tag.get("body");
3
6
  const tagName = tag.get("name").node.value;
@@ -1,30 +1,30 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  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) => {
10
+ var __reExport = (target, module2, copyDefault, desc) => {
14
11
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
12
  for (let key of __getOwnPropNames(module2))
16
- if (!__hasOwnProp.call(target, key) && key !== "default")
13
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
17
14
  __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
18
15
  }
19
16
  return target;
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 = /* @__PURE__ */ ((cache) => {
19
+ return (module2, temp) => {
20
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
21
+ };
22
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
23
+ var serializer_exports = {};
24
+ __export(serializer_exports, {
25
25
  default: () => serialize
26
26
  });
27
- var import_domelementtype = __toModule(require("domelementtype"));
27
+ var import_domelementtype = require("domelementtype");
28
28
  const voidElements = /* @__PURE__ */ new Set([
29
29
  "area",
30
30
  "base",
@@ -43,7 +43,7 @@ const voidElements = /* @__PURE__ */ new Set([
43
43
  ]);
44
44
  function serialize(nodes, parts) {
45
45
  let curString = parts ? parts.pop() : "";
46
- parts != null ? parts : parts = [];
46
+ parts ?? (parts = []);
47
47
  for (const node of nodes) {
48
48
  switch (node.type) {
49
49
  case import_domelementtype.ElementType.Tag:
@@ -99,5 +99,6 @@ function serialize(nodes, parts) {
99
99
  }
100
100
  return parts;
101
101
  }
102
+ module.exports = __toCommonJS(serializer_exports);
102
103
  // Annotate the CommonJS export names for ESM import in node:
103
104
  0 && (module.exports = {});
@@ -1,78 +1,7 @@
1
- import { ElementType } from "domelementtype";
2
- const voidElements = /* @__PURE__ */ new Set([
3
- "area",
4
- "base",
5
- "br",
6
- "col",
7
- "embed",
8
- "hr",
9
- "img",
10
- "input",
11
- "link",
12
- "meta",
13
- "param",
14
- "source",
15
- "track",
16
- "wbr"
17
- ]);
18
- function serialize(nodes, parts) {
19
- let curString = parts ? parts.pop() : "";
20
- parts != null ? parts : parts = [];
21
- for (const node of nodes) {
22
- switch (node.type) {
23
- case ElementType.Tag:
24
- case ElementType.Style:
25
- case ElementType.Script: {
26
- const tag = node;
27
- const { name } = tag;
28
- curString += `<${name}`;
29
- switch (tag.tagName) {
30
- case "script":
31
- parts.push(curString);
32
- curString = "";
33
- break;
34
- case "style":
35
- parts.push(curString);
36
- curString = "";
37
- break;
38
- case "link":
39
- if (tag.attribs.rel === "stylesheet") {
40
- parts.push(curString);
41
- curString = "";
42
- }
43
- break;
44
- }
45
- for (const attr of tag.attributes) {
46
- curString += ` ${attr.value === "" ? attr.name : `${attr.name}="${attr.value.replace(/"/g, "&#39;")}"`}`;
47
- }
48
- curString += ">";
49
- if (tag.children.length) {
50
- parts.push(curString);
51
- serialize(tag.children, parts);
52
- curString = parts.pop();
53
- }
54
- if (!voidElements.has(name)) {
55
- curString += `</${name}>`;
56
- }
57
- break;
58
- }
59
- case ElementType.Text: {
60
- const text = node.data;
61
- if (!/^\s*$/.test(text)) {
62
- curString += text;
63
- }
64
- break;
65
- }
66
- case ElementType.Comment:
67
- curString += `<!--${node.data}-->`;
68
- break;
69
- }
70
- }
71
- if (curString) {
72
- parts.push(curString);
73
- }
74
- return parts;
75
- }
1
+ import {
2
+ serialize
3
+ } from "./chunk-VL2HLMVE.mjs";
4
+ import "./chunk-SOEV5HRE.mjs";
76
5
  export {
77
6
  serialize as default
78
7
  };
@@ -6,25 +6,30 @@ var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
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) => {
12
+ var __reExport = (target, module2, copyDefault, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
- if (!__hasOwnProp.call(target, key) && key !== "default")
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
17
16
  __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
18
17
  }
19
18
  return target;
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);
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
23
22
  };
24
- __export(exports, {
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var server_entry_template_exports = {};
29
+ __export(server_entry_template_exports, {
25
30
  default: () => server_entry_template_default
26
31
  });
27
- var import_path = __toModule(require("path"));
32
+ var import_path = __toESM(require("path"));
28
33
  var server_entry_template_default = async (opts) => {
29
34
  const fileNameStr = JSON.stringify(`./${import_path.default.basename(opts.fileName)}`);
30
35
  return `import template from ${fileNameStr};
@@ -41,5 +46,6 @@ ${opts.runtimeId ? `$ $global.runtimeId = ${JSON.stringify(opts.runtimeId)};
41
46
  <_vite slot="body"/>
42
47
  `;
43
48
  };
49
+ module.exports = __toCommonJS(server_entry_template_exports);
44
50
  // Annotate the CommonJS export names for ESM import in node:
45
51
  0 && (module.exports = {});
@@ -1,20 +1,7 @@
1
- import path from "path";
2
- var server_entry_template_default = async (opts) => {
3
- const fileNameStr = JSON.stringify(`./${path.basename(opts.fileName)}`);
4
- return `import template from ${fileNameStr};
5
- export * from ${fileNameStr};
6
- $ const $global = out.global;
7
- ${opts.runtimeId ? `$ $global.runtimeId = ${JSON.stringify(opts.runtimeId)};
8
- ` : ""}$ ($global.___viteEntries || ($global.___viteEntries = [])).push(${opts.entryData});
9
- <_vite slot="head-prepend"/>
10
- <_vite slot="head"/>
11
- <_vite slot="body-prepend"/>
12
- <\${template} ...input/>
13
- <init-components/>
14
- <await-reorderer/>
15
- <_vite slot="body"/>
16
- `;
17
- };
1
+ import {
2
+ server_entry_template_default
3
+ } from "./chunk-HWRQJHCN.mjs";
4
+ import "./chunk-SOEV5HRE.mjs";
18
5
  export {
19
6
  server_entry_template_default as default
20
7
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@marko/vite",
3
3
  "description": "A Marko plugin for Vite",
4
- "version": "2.2.0",
4
+ "version": "2.2.4",
5
5
  "author": "Dylan Piercey <dpiercey@ebay.com>",
6
6
  "bugs": "https://github.com/marko-js/vite/issues",
7
7
  "dependencies": {
@@ -11,30 +11,37 @@
11
11
  "htmlparser2": "^7.2.0"
12
12
  },
13
13
  "devDependencies": {
14
- "@commitlint/cli": "^15.0.0",
15
- "@commitlint/config-conventional": "^15.0.0",
16
- "@istanbuljs/nyc-config-typescript": "^1.0.2",
17
- "@marko/compiler": "^5.17.4",
14
+ "@commitlint/cli": "^16.0.1",
15
+ "@commitlint/config-conventional": "^16.0.0",
16
+ "@marko/compiler": "^5.17.6",
18
17
  "@types/mocha": "^9.0.0",
19
- "@types/node": "^16.11.11",
20
- "@typescript-eslint/eslint-plugin": "^5.5.0",
21
- "@typescript-eslint/parser": "^5.5.0",
22
- "esbuild": "^0.14.2",
23
- "esbuild-register": "^3.2.0",
24
- "eslint": "^8.4.0",
18
+ "@types/node": "^17.0.6",
19
+ "@typescript-eslint/eslint-plugin": "^5.8.1",
20
+ "@typescript-eslint/parser": "^5.8.1",
21
+ "esbuild": "^0.14.10",
22
+ "esbuild-register": "^3.3.1",
23
+ "eslint": "^8.6.0",
25
24
  "eslint-config-prettier": "^8.3.0",
26
25
  "fast-glob": "^3.2.7",
27
26
  "fixpack": "^4.0.0",
28
27
  "husky": "^7.0.4",
29
- "lint-staged": "^12.1.2",
30
- "marko": "^5.17.5",
28
+ "lint-staged": "^12.1.4",
29
+ "marko": "^5.17.6",
31
30
  "mocha": "^9.1.3",
32
31
  "mocha-snap": "^4.2.1",
33
32
  "nyc": "^15.1.0",
34
33
  "prettier": "^2.5.1",
35
34
  "semantic-release": "^18.0.1",
36
- "typescript": "^4.5.2",
37
- "vite": "^2.6.14"
35
+ "typescript": "^4.5.4",
36
+ "vite": "^2.7.10"
37
+ },
38
+ "exports": {
39
+ ".": {
40
+ "import": "./dist/index.mjs",
41
+ "default": "./dist/index.js"
42
+ },
43
+ "./dist/components/vite.marko": "./dist/components/vite.marko",
44
+ "./dist/components/vite-watch.marko": "./dist/components/vite-watch.marko"
38
45
  },
39
46
  "files": [
40
47
  "dist",
@@ -50,8 +57,8 @@
50
57
  "vite"
51
58
  ],
52
59
  "license": "MIT",
53
- "main": "dist/index.js",
54
- "module": "dist/index.mjs",
60
+ "main": "./dist/index.js",
61
+ "module": "./dist/index.mjs",
55
62
  "peerDependencies": {
56
63
  "@marko/compiler": "^5",
57
64
  "vite": "^2"