@marko/vite 2.1.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-HWRQJHCN.mjs +22 -0
- package/dist/chunk-MPTD6LHF.mjs +65 -0
- package/dist/chunk-SOEV5HRE.mjs +24 -0
- package/dist/chunk-VL2HLMVE.mjs +80 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +62 -54
- package/dist/index.mjs +65 -88
- package/dist/manifest-generator.js +16 -13
- package/dist/manifest-generator.mjs +6 -56
- package/dist/render-assets-transform.js +19 -5
- package/dist/render-assets-transform.mjs +3 -0
- package/dist/serializer.js +13 -15
- package/dist/serializer.mjs +4 -75
- package/dist/server-entry-template.js +13 -10
- package/dist/server-entry-template.mjs +4 -17
- package/package.json +31 -28
|
@@ -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, "'")}"`}`;
|
|
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
package/dist/index.js
CHANGED
|
@@ -22,38 +22,39 @@ var __spreadValues = (a, b) => {
|
|
|
22
22
|
};
|
|
23
23
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
24
|
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
26
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
27
|
-
};
|
|
28
25
|
var __export = (target, all) => {
|
|
29
|
-
__markAsModule(target);
|
|
30
26
|
for (var name in all)
|
|
31
27
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
32
28
|
};
|
|
33
|
-
var __reExport = (target, module2, desc) => {
|
|
29
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
34
30
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
35
31
|
for (let key of __getOwnPropNames(module2))
|
|
36
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
32
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
37
33
|
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
38
34
|
}
|
|
39
35
|
return target;
|
|
40
36
|
};
|
|
41
|
-
var
|
|
42
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default",
|
|
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);
|
|
43
39
|
};
|
|
44
|
-
|
|
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, {
|
|
45
47
|
default: () => markoPlugin
|
|
46
48
|
});
|
|
47
|
-
var import_os =
|
|
48
|
-
var import_fs =
|
|
49
|
-
var import_path =
|
|
50
|
-
var import_crypto =
|
|
51
|
-
var import_url =
|
|
52
|
-
var import_anymatch =
|
|
53
|
-
var import_server_entry_template =
|
|
54
|
-
var import_manifest_generator =
|
|
55
|
-
const
|
|
56
|
-
const virtualFiles = new Map();
|
|
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_url = require("url");
|
|
54
|
+
var import_anymatch = __toESM(require("anymatch"));
|
|
55
|
+
var import_server_entry_template = __toESM(require("./server-entry-template"));
|
|
56
|
+
var import_manifest_generator = require("./manifest-generator");
|
|
57
|
+
const virtualFiles = /* @__PURE__ */ new Map();
|
|
57
58
|
const queryReg = /\?marko-.+$/;
|
|
58
59
|
const browserEntryQuery = "?marko-browser-entry";
|
|
59
60
|
const serverEntryQuery = "?marko-server-entry";
|
|
@@ -70,7 +71,7 @@ function markoPlugin(opts = {}) {
|
|
|
70
71
|
runtimeId,
|
|
71
72
|
sourceMaps: true,
|
|
72
73
|
writeVersionComment: false,
|
|
73
|
-
cache: new Map(),
|
|
74
|
+
cache: /* @__PURE__ */ new Map(),
|
|
74
75
|
babelConfig: __spreadProps(__spreadValues({}, opts.babelConfig), {
|
|
75
76
|
caller: __spreadValues({
|
|
76
77
|
name: "@marko/vite",
|
|
@@ -108,15 +109,14 @@ function markoPlugin(opts = {}) {
|
|
|
108
109
|
let devServer;
|
|
109
110
|
let registeredTag = false;
|
|
110
111
|
let serverManifest;
|
|
111
|
-
const transformWatchFiles = new Map();
|
|
112
|
-
const transformOptionalFiles = new Map();
|
|
112
|
+
const transformWatchFiles = /* @__PURE__ */ new Map();
|
|
113
|
+
const transformOptionalFiles = /* @__PURE__ */ new Map();
|
|
113
114
|
return [
|
|
114
115
|
{
|
|
115
116
|
name: "marko-vite:pre",
|
|
116
117
|
enforce: "pre",
|
|
117
118
|
async config(config, env) {
|
|
118
|
-
|
|
119
|
-
compiler != null ? compiler : compiler = await Promise.resolve().then(() => __toModule(require(opts.compiler || "@marko/compiler")));
|
|
119
|
+
compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
|
|
120
120
|
root = config.root || process.cwd();
|
|
121
121
|
isBuild = env.command === "build";
|
|
122
122
|
isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
|
|
@@ -148,15 +148,15 @@ function markoPlugin(opts = {}) {
|
|
|
148
148
|
}
|
|
149
149
|
const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
|
|
150
150
|
const serverDeps = Array.from(new Set(htmlRuntimeDeps.concat(taglibDeps)));
|
|
151
|
-
const optimizeDeps =
|
|
152
|
-
|
|
151
|
+
const optimizeDeps = config.optimizeDeps ?? (config.optimizeDeps = {});
|
|
152
|
+
optimizeDeps.include ?? (optimizeDeps.include = []);
|
|
153
153
|
optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => import_path.default.extname(dep) !== markoExt));
|
|
154
|
-
|
|
154
|
+
optimizeDeps.exclude ?? (optimizeDeps.exclude = []);
|
|
155
155
|
optimizeDeps.exclude = optimizeDeps.exclude.concat(domDeps.filter((dep) => import_path.default.extname(dep) === markoExt));
|
|
156
|
-
const ssr =
|
|
157
|
-
|
|
156
|
+
const ssr = config.ssr ?? (config.ssr = {});
|
|
157
|
+
ssr.external ?? (ssr.external = []);
|
|
158
158
|
ssr.external = ssr.external.concat(serverDeps);
|
|
159
|
-
(await
|
|
159
|
+
(await import("@marko/compiler/register")).default(__spreadProps(__spreadValues({}, ssrConfig), {
|
|
160
160
|
sourceMaps: "inline",
|
|
161
161
|
modules: "cjs"
|
|
162
162
|
}));
|
|
@@ -200,26 +200,27 @@ function markoPlugin(opts = {}) {
|
|
|
200
200
|
}
|
|
201
201
|
}
|
|
202
202
|
},
|
|
203
|
-
async resolveId(importee, importer,
|
|
204
|
-
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
203
|
+
async resolveId(importee, importer, importOpts, ssr = importOpts.ssr) {
|
|
204
|
+
var _a2;
|
|
205
|
+
if (virtualFiles.has(importee)) {
|
|
206
|
+
return importee;
|
|
207
|
+
}
|
|
208
|
+
let importeeQuery = getMarkoQuery(importee);
|
|
209
|
+
if (importeeQuery) {
|
|
210
|
+
importee = importee.slice(0, -importeeQuery.length);
|
|
211
|
+
} else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
212
|
+
importeeQuery = serverEntryQuery;
|
|
213
|
+
} else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
|
|
214
|
+
importeeQuery = browserEntryQuery;
|
|
215
|
+
}
|
|
216
|
+
if (importeeQuery) {
|
|
217
|
+
const resolved = importee[0] === "." ? {
|
|
218
|
+
id: importer ? import_path.default.resolve(importer, "..", importee) : import_path.default.resolve(root, importee)
|
|
219
|
+
} : await this.resolve(importee, importer, resolveOpts);
|
|
220
|
+
if (resolved) {
|
|
221
|
+
resolved.id += importeeQuery;
|
|
222
222
|
}
|
|
223
|
+
return resolved;
|
|
223
224
|
}
|
|
224
225
|
return null;
|
|
225
226
|
},
|
|
@@ -236,14 +237,14 @@ function markoPlugin(opts = {}) {
|
|
|
236
237
|
if (isBuild) {
|
|
237
238
|
const relativeFileName = import_path.default.relative(root, fileName);
|
|
238
239
|
const entryId = toEntryId(relativeFileName);
|
|
239
|
-
serverManifest
|
|
240
|
+
serverManifest ?? (serverManifest = {
|
|
240
241
|
entries: {},
|
|
241
242
|
chunksNeedingAssets: []
|
|
242
|
-
};
|
|
243
|
+
});
|
|
243
244
|
serverManifest.entries[entryId] = relativeFileName;
|
|
244
245
|
entryData = JSON.stringify(entryId);
|
|
245
246
|
} else {
|
|
246
|
-
entryData = JSON.stringify(await (0, import_manifest_generator.generateDocManifest)(await devServer.transformIndexHtml("/", (0, import_manifest_generator.generateInputDoc)(fileNameToURL(fileName, root)
|
|
247
|
+
entryData = JSON.stringify(await (0, import_manifest_generator.generateDocManifest)(await devServer.transformIndexHtml("/", (0, import_manifest_generator.generateInputDoc)(fileNameToURL(fileName, root)))));
|
|
247
248
|
}
|
|
248
249
|
return (0, import_server_entry_template.default)({
|
|
249
250
|
fileName,
|
|
@@ -257,6 +258,12 @@ function markoPlugin(opts = {}) {
|
|
|
257
258
|
}
|
|
258
259
|
return virtualFiles.get(id) || null;
|
|
259
260
|
},
|
|
261
|
+
async transformIndexHtml(html) {
|
|
262
|
+
if (isBuild) {
|
|
263
|
+
return html;
|
|
264
|
+
}
|
|
265
|
+
return html.replace(/src\s*=\s*(['"])(\\.|(?!\1).)*\.marko\1/gim, (m) => m.slice(0, -1) + browserEntryQuery + m.slice(-1));
|
|
266
|
+
},
|
|
260
267
|
async transform(source, id, ssr) {
|
|
261
268
|
const query = getMarkoQuery(id);
|
|
262
269
|
if (query && !query.startsWith(virtualFileQuery)) {
|
|
@@ -268,7 +275,7 @@ function markoPlugin(opts = {}) {
|
|
|
268
275
|
if (!isMarkoFile(id)) {
|
|
269
276
|
return null;
|
|
270
277
|
}
|
|
271
|
-
const compiled = await compiler.compile(source, id, ssr ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
278
|
+
const compiled = await compiler.compile(source, id, (typeof ssr === "object" ? ssr.ssr : ssr) ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
272
279
|
const { map, meta } = compiled;
|
|
273
280
|
let { code } = compiled;
|
|
274
281
|
if (query !== browserEntryQuery && devServer) {
|
|
@@ -356,7 +363,7 @@ function toHTMLEntries(root, serverEntries) {
|
|
|
356
363
|
const markoFile = import_path.default.join(root, serverEntries[id]);
|
|
357
364
|
const htmlFile = markoFile + htmlExt;
|
|
358
365
|
virtualFiles.set(htmlFile, {
|
|
359
|
-
code: (0, import_manifest_generator.generateInputDoc)(markoFile
|
|
366
|
+
code: (0, import_manifest_generator.generateInputDoc)(markoFile)
|
|
360
367
|
});
|
|
361
368
|
result.push(htmlFile);
|
|
362
369
|
}
|
|
@@ -406,5 +413,6 @@ function isEmpty(obj) {
|
|
|
406
413
|
}
|
|
407
414
|
return true;
|
|
408
415
|
}
|
|
416
|
+
module.exports = __toCommonJS(src_exports);
|
|
409
417
|
// Annotate the CommonJS export names for ESM import in node:
|
|
410
418
|
0 && (module.exports = {});
|
package/dist/index.mjs
CHANGED
|
@@ -1,61 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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 __require = typeof require !== "undefined" ? require : (x) => {
|
|
26
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
27
|
-
};
|
|
28
|
-
var __reExport = (target, module, desc) => {
|
|
29
|
-
if (module && typeof module === "object" || typeof module === "function") {
|
|
30
|
-
for (let key of __getOwnPropNames(module))
|
|
31
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
32
|
-
__defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
|
|
33
|
-
}
|
|
34
|
-
return target;
|
|
35
|
-
};
|
|
36
|
-
var __toModule = (module) => {
|
|
37
|
-
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);
|
|
38
|
-
};
|
|
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
|
|
39
15
|
import os from "os";
|
|
40
16
|
import fs from "fs";
|
|
41
17
|
import path from "path";
|
|
42
18
|
import crypto from "crypto";
|
|
43
19
|
import { pathToFileURL } from "url";
|
|
44
20
|
import anyMatch from "anymatch";
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const virtualFileQuery = "?marko-virtual";
|
|
55
|
-
const markoExt = ".marko";
|
|
56
|
-
const htmlExt = ".html";
|
|
57
|
-
const resolveOpts = { skipSelf: true };
|
|
58
|
-
let tempDir;
|
|
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 tempDir;
|
|
59
30
|
function markoPlugin(opts = {}) {
|
|
60
31
|
var _a;
|
|
61
32
|
let compiler;
|
|
@@ -64,7 +35,7 @@ function markoPlugin(opts = {}) {
|
|
|
64
35
|
runtimeId,
|
|
65
36
|
sourceMaps: true,
|
|
66
37
|
writeVersionComment: false,
|
|
67
|
-
cache: new Map(),
|
|
38
|
+
cache: /* @__PURE__ */ new Map(),
|
|
68
39
|
babelConfig: __spreadProps(__spreadValues({}, opts.babelConfig), {
|
|
69
40
|
caller: __spreadValues({
|
|
70
41
|
name: "@marko/vite",
|
|
@@ -102,15 +73,14 @@ function markoPlugin(opts = {}) {
|
|
|
102
73
|
let devServer;
|
|
103
74
|
let registeredTag = false;
|
|
104
75
|
let serverManifest;
|
|
105
|
-
const transformWatchFiles = new Map();
|
|
106
|
-
const transformOptionalFiles = new Map();
|
|
76
|
+
const transformWatchFiles = /* @__PURE__ */ new Map();
|
|
77
|
+
const transformOptionalFiles = /* @__PURE__ */ new Map();
|
|
107
78
|
return [
|
|
108
79
|
{
|
|
109
80
|
name: "marko-vite:pre",
|
|
110
81
|
enforce: "pre",
|
|
111
82
|
async config(config, env) {
|
|
112
|
-
|
|
113
|
-
compiler != null ? compiler : compiler = await Promise.resolve().then(() => __toModule(require(opts.compiler || "@marko/compiler")));
|
|
83
|
+
compiler ?? (compiler = await import(opts.compiler || "@marko/compiler"));
|
|
114
84
|
root = config.root || process.cwd();
|
|
115
85
|
isBuild = env.command === "build";
|
|
116
86
|
isSSRBuild = isBuild && linked && Boolean(config.build.ssr);
|
|
@@ -142,15 +112,15 @@ function markoPlugin(opts = {}) {
|
|
|
142
112
|
}
|
|
143
113
|
const domDeps = Array.from(new Set(domRuntimeDeps.concat(taglibDeps)));
|
|
144
114
|
const serverDeps = Array.from(new Set(htmlRuntimeDeps.concat(taglibDeps)));
|
|
145
|
-
const optimizeDeps =
|
|
146
|
-
|
|
115
|
+
const optimizeDeps = config.optimizeDeps ?? (config.optimizeDeps = {});
|
|
116
|
+
optimizeDeps.include ?? (optimizeDeps.include = []);
|
|
147
117
|
optimizeDeps.include = optimizeDeps.include.concat(domDeps.filter((dep) => path.extname(dep) !== markoExt));
|
|
148
|
-
|
|
118
|
+
optimizeDeps.exclude ?? (optimizeDeps.exclude = []);
|
|
149
119
|
optimizeDeps.exclude = optimizeDeps.exclude.concat(domDeps.filter((dep) => path.extname(dep) === markoExt));
|
|
150
|
-
const ssr =
|
|
151
|
-
|
|
120
|
+
const ssr = config.ssr ?? (config.ssr = {});
|
|
121
|
+
ssr.external ?? (ssr.external = []);
|
|
152
122
|
ssr.external = ssr.external.concat(serverDeps);
|
|
153
|
-
(await
|
|
123
|
+
(await import("@marko/compiler/register")).default(__spreadProps(__spreadValues({}, ssrConfig), {
|
|
154
124
|
sourceMaps: "inline",
|
|
155
125
|
modules: "cjs"
|
|
156
126
|
}));
|
|
@@ -194,26 +164,27 @@ function markoPlugin(opts = {}) {
|
|
|
194
164
|
}
|
|
195
165
|
}
|
|
196
166
|
},
|
|
197
|
-
async resolveId(importee, importer,
|
|
198
|
-
|
|
199
|
-
if (
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
167
|
+
async resolveId(importee, importer, importOpts, ssr = importOpts.ssr) {
|
|
168
|
+
var _a2;
|
|
169
|
+
if (virtualFiles.has(importee)) {
|
|
170
|
+
return importee;
|
|
171
|
+
}
|
|
172
|
+
let importeeQuery = getMarkoQuery(importee);
|
|
173
|
+
if (importeeQuery) {
|
|
174
|
+
importee = importee.slice(0, -importeeQuery.length);
|
|
175
|
+
} else if (ssr && linked && importer && isMarkoFile(importee) && !isMarkoFile(importer.replace(queryReg, ""))) {
|
|
176
|
+
importeeQuery = serverEntryQuery;
|
|
177
|
+
} else if (!ssr && isBuild && importer && isMarkoFile(importee) && ((_a2 = this.getModuleInfo(importer)) == null ? void 0 : _a2.isEntry)) {
|
|
178
|
+
importeeQuery = browserEntryQuery;
|
|
179
|
+
}
|
|
180
|
+
if (importeeQuery) {
|
|
181
|
+
const resolved = importee[0] === "." ? {
|
|
182
|
+
id: importer ? path.resolve(importer, "..", importee) : path.resolve(root, importee)
|
|
183
|
+
} : await this.resolve(importee, importer, resolveOpts);
|
|
184
|
+
if (resolved) {
|
|
185
|
+
resolved.id += importeeQuery;
|
|
216
186
|
}
|
|
187
|
+
return resolved;
|
|
217
188
|
}
|
|
218
189
|
return null;
|
|
219
190
|
},
|
|
@@ -230,16 +201,16 @@ function markoPlugin(opts = {}) {
|
|
|
230
201
|
if (isBuild) {
|
|
231
202
|
const relativeFileName = path.relative(root, fileName);
|
|
232
203
|
const entryId = toEntryId(relativeFileName);
|
|
233
|
-
serverManifest
|
|
204
|
+
serverManifest ?? (serverManifest = {
|
|
234
205
|
entries: {},
|
|
235
206
|
chunksNeedingAssets: []
|
|
236
|
-
};
|
|
207
|
+
});
|
|
237
208
|
serverManifest.entries[entryId] = relativeFileName;
|
|
238
209
|
entryData = JSON.stringify(entryId);
|
|
239
210
|
} else {
|
|
240
|
-
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)
|
|
211
|
+
entryData = JSON.stringify(await generateDocManifest(await devServer.transformIndexHtml("/", generateInputDoc(fileNameToURL(fileName, root)))));
|
|
241
212
|
}
|
|
242
|
-
return
|
|
213
|
+
return server_entry_template_default({
|
|
243
214
|
fileName,
|
|
244
215
|
entryData,
|
|
245
216
|
runtimeId
|
|
@@ -251,6 +222,12 @@ function markoPlugin(opts = {}) {
|
|
|
251
222
|
}
|
|
252
223
|
return virtualFiles.get(id) || null;
|
|
253
224
|
},
|
|
225
|
+
async transformIndexHtml(html) {
|
|
226
|
+
if (isBuild) {
|
|
227
|
+
return html;
|
|
228
|
+
}
|
|
229
|
+
return html.replace(/src\s*=\s*(['"])(\\.|(?!\1).)*\.marko\1/gim, (m) => m.slice(0, -1) + browserEntryQuery + m.slice(-1));
|
|
230
|
+
},
|
|
254
231
|
async transform(source, id, ssr) {
|
|
255
232
|
const query = getMarkoQuery(id);
|
|
256
233
|
if (query && !query.startsWith(virtualFileQuery)) {
|
|
@@ -262,7 +239,7 @@ function markoPlugin(opts = {}) {
|
|
|
262
239
|
if (!isMarkoFile(id)) {
|
|
263
240
|
return null;
|
|
264
241
|
}
|
|
265
|
-
const compiled = await compiler.compile(source, id, ssr ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
242
|
+
const compiled = await compiler.compile(source, id, (typeof ssr === "object" ? ssr.ssr : ssr) ? ssrConfig : query === browserEntryQuery ? hydrateConfig : domConfig);
|
|
266
243
|
const { map, meta } = compiled;
|
|
267
244
|
let { code } = compiled;
|
|
268
245
|
if (query !== browserEntryQuery && devServer) {
|
|
@@ -350,7 +327,7 @@ function toHTMLEntries(root, serverEntries) {
|
|
|
350
327
|
const markoFile = path.join(root, serverEntries[id]);
|
|
351
328
|
const htmlFile = markoFile + htmlExt;
|
|
352
329
|
virtualFiles.set(htmlFile, {
|
|
353
|
-
code: generateInputDoc(markoFile
|
|
330
|
+
code: generateInputDoc(markoFile)
|
|
354
331
|
});
|
|
355
332
|
result.push(htmlFile);
|
|
356
333
|
}
|
|
@@ -5,33 +5,35 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
9
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
10
|
-
};
|
|
11
8
|
var __export = (target, all) => {
|
|
12
|
-
__markAsModule(target);
|
|
13
9
|
for (var name in all)
|
|
14
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
11
|
};
|
|
16
|
-
var __reExport = (target, module2, desc) => {
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
17
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
18
14
|
for (let key of __getOwnPropNames(module2))
|
|
19
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
20
16
|
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
21
17
|
}
|
|
22
18
|
return target;
|
|
23
19
|
};
|
|
24
|
-
var
|
|
25
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default",
|
|
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);
|
|
26
22
|
};
|
|
27
|
-
|
|
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, {
|
|
28
30
|
generateDocManifest: () => generateDocManifest,
|
|
29
31
|
generateInputDoc: () => generateInputDoc
|
|
30
32
|
});
|
|
31
|
-
var import_htmlparser2 =
|
|
32
|
-
var import_domelementtype =
|
|
33
|
-
var import_domhandler =
|
|
34
|
-
var import_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"));
|
|
35
37
|
const MARKER_COMMENT = "MARKO_VITE";
|
|
36
38
|
function generateDocManifest(rawHtml) {
|
|
37
39
|
return new Promise((resolve, reject) => {
|
|
@@ -84,6 +86,7 @@ function splitNodesByMarker(nodes, before, after) {
|
|
|
84
86
|
function isElement(node) {
|
|
85
87
|
return node.type === import_domelementtype.ElementType.Tag;
|
|
86
88
|
}
|
|
89
|
+
module.exports = __toCommonJS(manifest_generator_exports);
|
|
87
90
|
// Annotate the CommonJS export names for ESM import in node:
|
|
88
91
|
0 && (module.exports = {
|
|
89
92
|
generateDocManifest,
|
|
@@ -1,59 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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,14 +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
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
4
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
5
|
-
};
|
|
6
6
|
var __export = (target, all) => {
|
|
7
|
-
__markAsModule(target);
|
|
8
7
|
for (var name in all)
|
|
9
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
9
|
};
|
|
11
|
-
|
|
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, {
|
|
12
25
|
default: () => render_assets_transform_default
|
|
13
26
|
});
|
|
14
27
|
var render_assets_transform_default = (tag, t) => {
|
|
@@ -20,5 +33,6 @@ var render_assets_transform_default = (tag, t) => {
|
|
|
20
33
|
function renderAssetsCall(t, slot) {
|
|
21
34
|
return t.callExpression(t.memberExpression(t.memberExpression(t.identifier("out"), t.identifier("global")), t.identifier("___viteRenderAssets")), [t.identifier("out"), t.stringLiteral(slot)]);
|
|
22
35
|
}
|
|
36
|
+
module.exports = __toCommonJS(render_assets_transform_exports);
|
|
23
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
24
38
|
0 && (module.exports = {});
|
package/dist/serializer.js
CHANGED
|
@@ -1,34 +1,31 @@
|
|
|
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
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
9
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
10
|
-
};
|
|
11
6
|
var __export = (target, all) => {
|
|
12
|
-
__markAsModule(target);
|
|
13
7
|
for (var name in all)
|
|
14
8
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
9
|
};
|
|
16
|
-
var __reExport = (target, module2, desc) => {
|
|
10
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
17
11
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
18
12
|
for (let key of __getOwnPropNames(module2))
|
|
19
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
13
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
20
14
|
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
21
15
|
}
|
|
22
16
|
return target;
|
|
23
17
|
};
|
|
24
|
-
var
|
|
25
|
-
return
|
|
26
|
-
};
|
|
27
|
-
|
|
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, {
|
|
28
25
|
default: () => serialize
|
|
29
26
|
});
|
|
30
|
-
var import_domelementtype =
|
|
31
|
-
const voidElements = new Set([
|
|
27
|
+
var import_domelementtype = require("domelementtype");
|
|
28
|
+
const voidElements = /* @__PURE__ */ new Set([
|
|
32
29
|
"area",
|
|
33
30
|
"base",
|
|
34
31
|
"br",
|
|
@@ -46,7 +43,7 @@ const voidElements = new Set([
|
|
|
46
43
|
]);
|
|
47
44
|
function serialize(nodes, parts) {
|
|
48
45
|
let curString = parts ? parts.pop() : "";
|
|
49
|
-
parts
|
|
46
|
+
parts ?? (parts = []);
|
|
50
47
|
for (const node of nodes) {
|
|
51
48
|
switch (node.type) {
|
|
52
49
|
case import_domelementtype.ElementType.Tag:
|
|
@@ -102,5 +99,6 @@ function serialize(nodes, parts) {
|
|
|
102
99
|
}
|
|
103
100
|
return parts;
|
|
104
101
|
}
|
|
102
|
+
module.exports = __toCommonJS(serializer_exports);
|
|
105
103
|
// Annotate the CommonJS export names for ESM import in node:
|
|
106
104
|
0 && (module.exports = {});
|
package/dist/serializer.mjs
CHANGED
|
@@ -1,78 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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, "'")}"`}`;
|
|
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
|
};
|
|
@@ -5,29 +5,31 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
-
var __require = typeof require !== "undefined" ? require : (x) => {
|
|
9
|
-
throw new Error('Dynamic require of "' + x + '" is not supported');
|
|
10
|
-
};
|
|
11
8
|
var __export = (target, all) => {
|
|
12
|
-
__markAsModule(target);
|
|
13
9
|
for (var name in all)
|
|
14
10
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
15
11
|
};
|
|
16
|
-
var __reExport = (target, module2, desc) => {
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
17
13
|
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
18
14
|
for (let key of __getOwnPropNames(module2))
|
|
19
|
-
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
20
16
|
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
21
17
|
}
|
|
22
18
|
return target;
|
|
23
19
|
};
|
|
24
|
-
var
|
|
25
|
-
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default",
|
|
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);
|
|
26
22
|
};
|
|
27
|
-
|
|
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, {
|
|
28
30
|
default: () => server_entry_template_default
|
|
29
31
|
});
|
|
30
|
-
var import_path =
|
|
32
|
+
var import_path = __toESM(require("path"));
|
|
31
33
|
var server_entry_template_default = async (opts) => {
|
|
32
34
|
const fileNameStr = JSON.stringify(`./${import_path.default.basename(opts.fileName)}`);
|
|
33
35
|
return `import template from ${fileNameStr};
|
|
@@ -44,5 +46,6 @@ ${opts.runtimeId ? `$ $global.runtimeId = ${JSON.stringify(opts.runtimeId)};
|
|
|
44
46
|
<_vite slot="body"/>
|
|
45
47
|
`;
|
|
46
48
|
};
|
|
49
|
+
module.exports = __toCommonJS(server_entry_template_exports);
|
|
47
50
|
// Annotate the CommonJS export names for ESM import in node:
|
|
48
51
|
0 && (module.exports = {});
|
|
@@ -1,20 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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,41 +1,45 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marko/vite",
|
|
3
3
|
"description": "A Marko plugin for Vite",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.2",
|
|
5
5
|
"author": "Dylan Piercey <dpiercey@ebay.com>",
|
|
6
6
|
"bugs": "https://github.com/marko-js/vite/issues",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"anymatch": "^3.1.2",
|
|
9
9
|
"domelementtype": "^2.2.0",
|
|
10
|
-
"domhandler": "^4.
|
|
11
|
-
"htmlparser2": "^7.
|
|
10
|
+
"domhandler": "^4.3.0",
|
|
11
|
+
"htmlparser2": "^7.2.0"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@commitlint/cli": "^
|
|
15
|
-
"@commitlint/config-conventional": "^
|
|
16
|
-
"@
|
|
17
|
-
"@marko/compiler": "^5.15.10",
|
|
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": "^
|
|
20
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
21
|
-
"@typescript-eslint/parser": "^
|
|
22
|
-
"
|
|
23
|
-
"esbuild": "^
|
|
24
|
-
"
|
|
25
|
-
"eslint": "^7.32.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",
|
|
26
24
|
"eslint-config-prettier": "^8.3.0",
|
|
27
25
|
"fast-glob": "^3.2.7",
|
|
28
26
|
"fixpack": "^4.0.0",
|
|
29
|
-
"husky": "^7.0.
|
|
30
|
-
"lint-staged": "^
|
|
31
|
-
"marko": "^5.
|
|
32
|
-
"mocha": "^9.1.
|
|
33
|
-
"mocha-snap": "^4.
|
|
27
|
+
"husky": "^7.0.4",
|
|
28
|
+
"lint-staged": "^12.1.4",
|
|
29
|
+
"marko": "^5.17.6",
|
|
30
|
+
"mocha": "^9.1.3",
|
|
31
|
+
"mocha-snap": "^4.2.1",
|
|
34
32
|
"nyc": "^15.1.0",
|
|
35
|
-
"prettier": "^2.
|
|
36
|
-
"semantic-release": "^18.0.
|
|
37
|
-
"typescript": "^4.4
|
|
38
|
-
"vite": "^2.
|
|
33
|
+
"prettier": "^2.5.1",
|
|
34
|
+
"semantic-release": "^18.0.1",
|
|
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
|
+
}
|
|
39
43
|
},
|
|
40
44
|
"files": [
|
|
41
45
|
"dist",
|
|
@@ -51,11 +55,11 @@
|
|
|
51
55
|
"vite"
|
|
52
56
|
],
|
|
53
57
|
"license": "MIT",
|
|
54
|
-
"main": "dist/index.js",
|
|
55
|
-
"module": "dist/index.mjs",
|
|
58
|
+
"main": "./dist/index.js",
|
|
59
|
+
"module": "./dist/index.mjs",
|
|
56
60
|
"peerDependencies": {
|
|
57
|
-
"@marko/compiler": "^5
|
|
58
|
-
"vite": "^2
|
|
61
|
+
"@marko/compiler": "^5",
|
|
62
|
+
"vite": "^2"
|
|
59
63
|
},
|
|
60
64
|
"repository": {
|
|
61
65
|
"type": "git",
|
|
@@ -63,7 +67,6 @@
|
|
|
63
67
|
},
|
|
64
68
|
"scripts": {
|
|
65
69
|
"build": "tsc -b && node -r esbuild-register build",
|
|
66
|
-
"ci:report": "codecov",
|
|
67
70
|
"ci:test": "nyc npm run mocha -- --forbid-pending --forbid-only",
|
|
68
71
|
"format": "npm run lint:eslint -- --fix && npm run lint:prettier -- --write && (fixpack || true)",
|
|
69
72
|
"lint": "tsc -b && npm run lint:eslint && npm run lint:prettier -- -l && fixpack",
|