@marko/run 0.4.4 → 0.4.6
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/.tsbuildinfo +1 -1
- package/dist/adapter/dev-server.d.ts +2 -2
- package/dist/adapter/index.cjs +183 -142
- package/dist/adapter/index.d.ts +1 -1
- package/dist/adapter/index.js +186 -143
- package/dist/adapter/middleware.cjs +16 -10
- package/dist/adapter/middleware.d.ts +0 -1
- package/dist/adapter/middleware.js +16 -10
- package/dist/adapter/polyfill.d.ts +0 -1
- package/dist/adapter/utils.d.ts +16 -0
- package/dist/cli/index.mjs +227 -220
- package/dist/runtime/internal.cjs +7 -5
- package/dist/runtime/internal.d.ts +1 -0
- package/dist/runtime/internal.js +5 -4
- package/dist/runtime/router.d.ts +2 -2
- package/dist/vite/index.cjs +226 -219
- package/dist/vite/index.js +227 -220
- package/dist/vite/utils/ast.d.ts +1 -0
- package/dist/vite/utils/server.d.ts +0 -3
- package/package.json +30 -30
- package/dist/components/src-attributes-transformer.cjs +0 -122
package/dist/adapter/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// src/adapter/index.ts
|
|
2
|
-
import
|
|
2
|
+
import path2 from "path";
|
|
3
3
|
import fs2 from "fs";
|
|
4
4
|
import inspector from "inspector";
|
|
5
5
|
import { fileURLToPath } from "url";
|
|
6
6
|
|
|
7
7
|
// src/adapter/dev-server.ts
|
|
8
|
-
import
|
|
8
|
+
import path from "path";
|
|
9
|
+
import {
|
|
10
|
+
createServer,
|
|
11
|
+
buildErrorMessage
|
|
12
|
+
} from "vite";
|
|
9
13
|
|
|
10
14
|
// src/adapter/polyfill.ts
|
|
11
15
|
import * as webStream from "stream/web";
|
|
@@ -43,11 +47,9 @@ function getSetCookie_platform(headers) {
|
|
|
43
47
|
var inExpiresDateRgs = /Expires\s*=\s*(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*$/i;
|
|
44
48
|
function getSetCookie_fallback(headers) {
|
|
45
49
|
const value = headers.get("set-cookie");
|
|
46
|
-
if (!value)
|
|
47
|
-
return void 0;
|
|
50
|
+
if (!value) return void 0;
|
|
48
51
|
let sepIndex = value.indexOf(",") + 1;
|
|
49
|
-
if (!sepIndex)
|
|
50
|
-
return value;
|
|
52
|
+
if (!sepIndex) return value;
|
|
51
53
|
let index = 0;
|
|
52
54
|
let setCookie = void 0;
|
|
53
55
|
let setCookies = void 0;
|
|
@@ -62,8 +64,7 @@ function getSetCookie_fallback(headers) {
|
|
|
62
64
|
setCookie = valuePart;
|
|
63
65
|
}
|
|
64
66
|
index = sepIndex;
|
|
65
|
-
while (value.charCodeAt(index) === 32)
|
|
66
|
-
index++;
|
|
67
|
+
while (value.charCodeAt(index) === 32) index++;
|
|
67
68
|
}
|
|
68
69
|
sepIndex = value.indexOf(",", sepIndex) + 1;
|
|
69
70
|
} while (sepIndex);
|
|
@@ -117,6 +118,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
117
118
|
appendHeader(response, "set-cookie", setCookies);
|
|
118
119
|
}
|
|
119
120
|
}
|
|
121
|
+
function normalizeError(error) {
|
|
122
|
+
if (error.cause && !error.message) {
|
|
123
|
+
error.message = error.cause.message;
|
|
124
|
+
error.stack || (error.stack = error.cause.stack);
|
|
125
|
+
}
|
|
126
|
+
return error;
|
|
127
|
+
}
|
|
120
128
|
function createMiddleware(fetch2, options) {
|
|
121
129
|
const {
|
|
122
130
|
origin = process.env.ORIGIN,
|
|
@@ -144,13 +152,14 @@ function createMiddleware(fetch2, options) {
|
|
|
144
152
|
}
|
|
145
153
|
}
|
|
146
154
|
function onSignalAborted() {
|
|
155
|
+
const error = normalizeError(signal.reason);
|
|
147
156
|
if (next) {
|
|
148
|
-
next(
|
|
157
|
+
next(error);
|
|
149
158
|
} else {
|
|
150
159
|
if (!res.destroyed && res.socket) {
|
|
151
160
|
res.socket.destroySoon();
|
|
152
161
|
}
|
|
153
|
-
console.error(
|
|
162
|
+
console.error(error);
|
|
154
163
|
}
|
|
155
164
|
}
|
|
156
165
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -161,7 +170,7 @@ function createMiddleware(fetch2, options) {
|
|
|
161
170
|
signal.addEventListener("abort", sendError);
|
|
162
171
|
}
|
|
163
172
|
function sendError() {
|
|
164
|
-
const { message, stack = "" } = signal.reason;
|
|
173
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
165
174
|
ws.send(
|
|
166
175
|
JSON.stringify({
|
|
167
176
|
type: "error",
|
|
@@ -195,6 +204,7 @@ function createMiddleware(fetch2, options) {
|
|
|
195
204
|
try {
|
|
196
205
|
response = await fetch2(request, platform);
|
|
197
206
|
} catch (err) {
|
|
207
|
+
normalizeError(err);
|
|
198
208
|
if (next) {
|
|
199
209
|
next(err);
|
|
200
210
|
} else {
|
|
@@ -241,7 +251,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
241
251
|
}
|
|
242
252
|
}
|
|
243
253
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
244
|
-
|
|
254
|
+
pull(controller) {
|
|
245
255
|
controller.error(
|
|
246
256
|
new Error(
|
|
247
257
|
"The request body stream was already consumed by something before Marko Run."
|
|
@@ -250,9 +260,6 @@ var bodyConsumedErrorStream = new ReadableStream({
|
|
|
250
260
|
}
|
|
251
261
|
});
|
|
252
262
|
|
|
253
|
-
// src/adapter/dev-server.ts
|
|
254
|
-
import { inspect } from "util";
|
|
255
|
-
|
|
256
263
|
// src/adapter/logger.ts
|
|
257
264
|
import kleur from "kleur";
|
|
258
265
|
import DraftLog from "draftlog";
|
|
@@ -447,130 +454,35 @@ function createAnimationManager(options = {}) {
|
|
|
447
454
|
};
|
|
448
455
|
}
|
|
449
456
|
|
|
450
|
-
// src/adapter/
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
getDevGlobal().addDevServer(devServer);
|
|
458
|
-
devServer.middlewares.use(logger_default());
|
|
459
|
-
return devServer;
|
|
460
|
-
}
|
|
461
|
-
async function createDevServer(config2) {
|
|
462
|
-
const devServer = await createViteDevServer(config2);
|
|
463
|
-
const routerMiddleware = createMiddleware(
|
|
464
|
-
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
457
|
+
// src/adapter/utils.ts
|
|
458
|
+
import supporsColor from "supports-color";
|
|
459
|
+
import kleur2 from "kleur";
|
|
460
|
+
function stripAnsi(string) {
|
|
461
|
+
return string.replace(
|
|
462
|
+
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
463
|
+
""
|
|
465
464
|
);
|
|
466
|
-
devServer.middlewares.use(async (req, res, next) => {
|
|
467
|
-
function handleNext(err) {
|
|
468
|
-
var _a;
|
|
469
|
-
if (err) {
|
|
470
|
-
if (err instanceof Error) {
|
|
471
|
-
devServer.ssrFixStacktrace(err);
|
|
472
|
-
}
|
|
473
|
-
console.error(err);
|
|
474
|
-
if (res.headersSent) {
|
|
475
|
-
if (!res.destroyed) {
|
|
476
|
-
(_a = res.socket) == null ? void 0 : _a.destroySoon();
|
|
477
|
-
}
|
|
478
|
-
} else {
|
|
479
|
-
res.statusCode = 500;
|
|
480
|
-
res.end(
|
|
481
|
-
inspect(err).replace(
|
|
482
|
-
/([\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><])/g,
|
|
483
|
-
""
|
|
484
|
-
)
|
|
485
|
-
);
|
|
486
|
-
}
|
|
487
|
-
} else {
|
|
488
|
-
next == null ? void 0 : next();
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
try {
|
|
492
|
-
await devServer.ssrLoadModule("@marko/run/router");
|
|
493
|
-
} catch (err) {
|
|
494
|
-
return handleNext(err);
|
|
495
|
-
}
|
|
496
|
-
routerMiddleware(req, res, handleNext);
|
|
497
|
-
});
|
|
498
|
-
return devServer;
|
|
499
465
|
}
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
if (req.headers.cookie) {
|
|
503
|
-
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
504
|
-
if (cookie) {
|
|
505
|
-
return cookie.slice(ClientIdCookieName.length + 1);
|
|
506
|
-
}
|
|
507
|
-
}
|
|
466
|
+
function cleanStack(stack) {
|
|
467
|
+
return stack.split(/\n/).filter((l) => /^\s*at/.test(l)).join("\n");
|
|
508
468
|
}
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
} else if (entry.expires > now) {
|
|
521
|
-
nextCallbacks.push(entry);
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
callbacks = nextCallbacks;
|
|
525
|
-
}
|
|
526
|
-
};
|
|
527
|
-
var handleConnection = handleConnection2;
|
|
528
|
-
const devServers = /* @__PURE__ */ new Set();
|
|
529
|
-
let callbacks = [];
|
|
530
|
-
globalThis.__marko_run_dev__ = devGlobal = {
|
|
531
|
-
devServers,
|
|
532
|
-
addDevServer(devServer) {
|
|
533
|
-
const originalClose = devServer.close;
|
|
534
|
-
devServer.close = () => {
|
|
535
|
-
devServers.delete(devServer);
|
|
536
|
-
return originalClose.call(devServer);
|
|
537
|
-
};
|
|
538
|
-
devServers.add(devServer);
|
|
539
|
-
devServer.ws.on("connection", handleConnection2);
|
|
540
|
-
},
|
|
541
|
-
clear() {
|
|
542
|
-
callbacks = [];
|
|
543
|
-
for (const devServer of devServers) {
|
|
544
|
-
devServer.ws.off("connection", handleConnection2);
|
|
545
|
-
devServer.close();
|
|
546
|
-
}
|
|
547
|
-
},
|
|
548
|
-
onClient(res, callback) {
|
|
549
|
-
const expires = Date.now() + 1e3;
|
|
550
|
-
const id = Math.floor(Math.random() * expires).toString(36);
|
|
551
|
-
callbacks.push({
|
|
552
|
-
id,
|
|
553
|
-
expires,
|
|
554
|
-
callback
|
|
555
|
-
});
|
|
556
|
-
res.setHeader(
|
|
557
|
-
"set-cookie",
|
|
558
|
-
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
559
|
-
);
|
|
560
|
-
}
|
|
561
|
-
};
|
|
562
|
-
}
|
|
563
|
-
return devGlobal;
|
|
469
|
+
function prepareError(err) {
|
|
470
|
+
var _a;
|
|
471
|
+
return {
|
|
472
|
+
message: stripAnsi(err.message),
|
|
473
|
+
stack: stripAnsi(cleanStack(err.stack || "")),
|
|
474
|
+
id: err.id,
|
|
475
|
+
frame: stripAnsi(err.frame || ""),
|
|
476
|
+
plugin: err.plugin,
|
|
477
|
+
pluginCode: (_a = err.pluginCode) == null ? void 0 : _a.toString(),
|
|
478
|
+
loc: err.loc
|
|
479
|
+
};
|
|
564
480
|
}
|
|
565
|
-
|
|
566
|
-
// src/adapter/utils.ts
|
|
567
|
-
import supporsColor from "supports-color";
|
|
568
|
-
import kleur2 from "kleur";
|
|
569
481
|
function logInfoBox(address, explorer) {
|
|
570
482
|
const color = !!supporsColor.stdout;
|
|
571
483
|
let message = kleur2.bold("Marko Run");
|
|
572
484
|
if (true) {
|
|
573
|
-
message += ` v${"0.4.
|
|
485
|
+
message += ` v${"0.4.6"}`;
|
|
574
486
|
}
|
|
575
487
|
message += "\n\n";
|
|
576
488
|
message += kleur2.dim("Server listening at");
|
|
@@ -678,8 +590,7 @@ B\u2572 \u2572 GG\u203E\u203E\u203E\u203E O\u2571 \u2571 P\u2571 \u2571
|
|
|
678
590
|
lineWidth = 0;
|
|
679
591
|
}
|
|
680
592
|
} else if (/[A-Z]/.test(char)) {
|
|
681
|
-
while (source[i + 1] === char)
|
|
682
|
-
i++;
|
|
593
|
+
while (source[i + 1] === char) i++;
|
|
683
594
|
if (color) {
|
|
684
595
|
line += colorEscapeCodes[char];
|
|
685
596
|
}
|
|
@@ -710,6 +621,137 @@ B\u2572 \u2572 GG\u203E\u203E\u203E\u203E O\u2571 \u2571 P\u2571 \u2571
|
|
|
710
621
|
return { lines, width };
|
|
711
622
|
}
|
|
712
623
|
|
|
624
|
+
// src/adapter/dev-server.ts
|
|
625
|
+
async function createViteDevServer(config2) {
|
|
626
|
+
const devServer = await createServer({
|
|
627
|
+
...config2,
|
|
628
|
+
appType: "custom",
|
|
629
|
+
server: { ...config2 == null ? void 0 : config2.server, middlewareMode: true }
|
|
630
|
+
});
|
|
631
|
+
getDevGlobal().addDevServer(devServer);
|
|
632
|
+
devServer.middlewares.use(logger_default());
|
|
633
|
+
return devServer;
|
|
634
|
+
}
|
|
635
|
+
async function createDevServer(config2) {
|
|
636
|
+
const devServer = await createViteDevServer(config2);
|
|
637
|
+
const routerMiddleware = createMiddleware(
|
|
638
|
+
(request, platform) => globalThis.__marko_run__.fetch(request, platform)
|
|
639
|
+
);
|
|
640
|
+
devServer.middlewares.use(async (req, res, next) => {
|
|
641
|
+
try {
|
|
642
|
+
await devServer.ssrLoadModule("@marko/run/router");
|
|
643
|
+
} catch (err) {
|
|
644
|
+
return next(err);
|
|
645
|
+
}
|
|
646
|
+
routerMiddleware(req, res, next);
|
|
647
|
+
}).use(createErrorMiddleware(devServer));
|
|
648
|
+
return devServer;
|
|
649
|
+
}
|
|
650
|
+
var ClientIdCookieName = "marko-run-client-id";
|
|
651
|
+
function getClientId(req) {
|
|
652
|
+
if (req.headers.cookie) {
|
|
653
|
+
const cookie = req.headers.cookie.split(/;\s+/).find((c) => c.startsWith(ClientIdCookieName));
|
|
654
|
+
if (cookie) {
|
|
655
|
+
return cookie.slice(ClientIdCookieName.length + 1);
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
var devGlobal;
|
|
660
|
+
function getDevGlobal() {
|
|
661
|
+
if (!devGlobal) {
|
|
662
|
+
let handleConnection2 = function(ws, req) {
|
|
663
|
+
if (callbacks == null ? void 0 : callbacks.length) {
|
|
664
|
+
const id = getClientId(req);
|
|
665
|
+
const now = Date.now();
|
|
666
|
+
const nextCallbacks = [];
|
|
667
|
+
for (const entry of callbacks) {
|
|
668
|
+
if (entry.id === id) {
|
|
669
|
+
entry.callback(ws);
|
|
670
|
+
} else if (entry.expires > now) {
|
|
671
|
+
nextCallbacks.push(entry);
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
callbacks = nextCallbacks;
|
|
675
|
+
}
|
|
676
|
+
};
|
|
677
|
+
var handleConnection = handleConnection2;
|
|
678
|
+
const devServers = /* @__PURE__ */ new Set();
|
|
679
|
+
let callbacks = [];
|
|
680
|
+
globalThis.__marko_run_dev__ = devGlobal = {
|
|
681
|
+
devServers,
|
|
682
|
+
addDevServer(devServer) {
|
|
683
|
+
const originalClose = devServer.close;
|
|
684
|
+
devServer.close = () => {
|
|
685
|
+
devServers.delete(devServer);
|
|
686
|
+
return originalClose.call(devServer);
|
|
687
|
+
};
|
|
688
|
+
devServers.add(devServer);
|
|
689
|
+
devServer.ws.on("connection", handleConnection2);
|
|
690
|
+
},
|
|
691
|
+
clear() {
|
|
692
|
+
callbacks = [];
|
|
693
|
+
for (const devServer of devServers) {
|
|
694
|
+
devServer.ws.off("connection", handleConnection2);
|
|
695
|
+
devServer.close();
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
onClient(res, callback) {
|
|
699
|
+
const expires = Date.now() + 1e3;
|
|
700
|
+
const id = Math.floor(Math.random() * expires).toString(36);
|
|
701
|
+
callbacks.push({
|
|
702
|
+
id,
|
|
703
|
+
expires,
|
|
704
|
+
callback
|
|
705
|
+
});
|
|
706
|
+
res.setHeader(
|
|
707
|
+
"set-cookie",
|
|
708
|
+
`${ClientIdCookieName}=${id}; Path=/; Max-Age=100; HttpOnly`
|
|
709
|
+
);
|
|
710
|
+
}
|
|
711
|
+
};
|
|
712
|
+
}
|
|
713
|
+
return devGlobal;
|
|
714
|
+
}
|
|
715
|
+
function createErrorMiddleware(devServer) {
|
|
716
|
+
return function errorMiddleware(error, _req, res, _next) {
|
|
717
|
+
if (!error.id) {
|
|
718
|
+
devServer.config.logger.error(buildErrorMessage(error, [`\x1B[31;1mRequest failed with error: ${error.message}\x1B[0m`]));
|
|
719
|
+
}
|
|
720
|
+
res.statusCode = 500;
|
|
721
|
+
res.end(`
|
|
722
|
+
<!DOCTYPE html>
|
|
723
|
+
<html lang="en">
|
|
724
|
+
<head>
|
|
725
|
+
<meta charset="UTF-8" />
|
|
726
|
+
<title>Error</title>
|
|
727
|
+
<script type="module">
|
|
728
|
+
const error = ${JSON.stringify(prepareError(error)).replace(
|
|
729
|
+
/</g,
|
|
730
|
+
"\\u003c"
|
|
731
|
+
)}
|
|
732
|
+
try {
|
|
733
|
+
const { ErrorOverlay } = await import(${JSON.stringify(path.posix.join(devServer.config.base, "/@vite/client"))})
|
|
734
|
+
document.body.appendChild(new ErrorOverlay(error))
|
|
735
|
+
} catch {
|
|
736
|
+
const h = (tag, text) => {
|
|
737
|
+
const el = document.createElement(tag)
|
|
738
|
+
el.textContent = text
|
|
739
|
+
return el
|
|
740
|
+
}
|
|
741
|
+
document.body.appendChild(h('h1', 'Internal Server Error'))
|
|
742
|
+
document.body.appendChild(h('h2', error.message))
|
|
743
|
+
document.body.appendChild(h('pre', error.stack))
|
|
744
|
+
document.body.appendChild(h('p', '(Error overlay failed to load)'))
|
|
745
|
+
}
|
|
746
|
+
</script>
|
|
747
|
+
</head>
|
|
748
|
+
<body>
|
|
749
|
+
</body>
|
|
750
|
+
</html>
|
|
751
|
+
`);
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
|
|
713
755
|
// src/vite/utils/server.ts
|
|
714
756
|
import net from "net";
|
|
715
757
|
import cp from "child_process";
|
|
@@ -882,9 +924,9 @@ var markoRunFilePrefix = "__marko-run__";
|
|
|
882
924
|
var virtualFilePrefix = "virtual:marko-run";
|
|
883
925
|
|
|
884
926
|
// src/adapter/index.ts
|
|
885
|
-
var __dirname =
|
|
886
|
-
var defaultEntry =
|
|
887
|
-
var loadDevWorker =
|
|
927
|
+
var __dirname = path2.dirname(fileURLToPath(import.meta.url));
|
|
928
|
+
var defaultEntry = path2.join(__dirname, "default-entry");
|
|
929
|
+
var loadDevWorker = path2.join(__dirname, "load-dev-worker.mjs");
|
|
888
930
|
function adapter() {
|
|
889
931
|
return {
|
|
890
932
|
name: "base-adapter",
|
|
@@ -935,9 +977,9 @@ function adapter() {
|
|
|
935
977
|
}
|
|
936
978
|
const devServer = await createDevServer(config2);
|
|
937
979
|
envFile && await loadEnv(envFile);
|
|
938
|
-
const
|
|
939
|
-
if (
|
|
940
|
-
inspector.open(
|
|
980
|
+
const inspect = getInspectOptions(options.args);
|
|
981
|
+
if (inspect) {
|
|
982
|
+
inspector.open(inspect.port, inspect.host, inspect.wait);
|
|
941
983
|
}
|
|
942
984
|
const listen = new Promise((resolve) => {
|
|
943
985
|
const listener = devServer.middlewares.listen(port, () => {
|
|
@@ -982,8 +1024,8 @@ function adapter() {
|
|
|
982
1024
|
return;
|
|
983
1025
|
}
|
|
984
1026
|
const promises = [];
|
|
985
|
-
const cacheDir =
|
|
986
|
-
const codeDir =
|
|
1027
|
+
const cacheDir = path2.resolve(__dirname, "../../.cache/explorer");
|
|
1028
|
+
const codeDir = path2.join(cacheDir, "code");
|
|
987
1029
|
if (fs2.existsSync(codeDir)) {
|
|
988
1030
|
await fs2.promises.rm(codeDir, { recursive: true });
|
|
989
1031
|
}
|
|
@@ -1005,7 +1047,7 @@ function adapter() {
|
|
|
1005
1047
|
}
|
|
1006
1048
|
if (fileName) {
|
|
1007
1049
|
promises.push(
|
|
1008
|
-
fs2.promises.writeFile(
|
|
1050
|
+
fs2.promises.writeFile(path2.join(codeDir, fileName), code, {})
|
|
1009
1051
|
);
|
|
1010
1052
|
}
|
|
1011
1053
|
}
|
|
@@ -1017,7 +1059,7 @@ function adapter() {
|
|
|
1017
1059
|
}
|
|
1018
1060
|
promises.push(
|
|
1019
1061
|
fs2.promises.writeFile(
|
|
1020
|
-
|
|
1062
|
+
path2.join(cacheDir, "data.json"),
|
|
1021
1063
|
JSON.stringify(data),
|
|
1022
1064
|
{}
|
|
1023
1065
|
)
|
|
@@ -1034,6 +1076,7 @@ async function startExplorer() {
|
|
|
1034
1076
|
}
|
|
1035
1077
|
export {
|
|
1036
1078
|
createDevServer,
|
|
1079
|
+
createErrorMiddleware,
|
|
1037
1080
|
createViteDevServer,
|
|
1038
1081
|
adapter as default,
|
|
1039
1082
|
getDevGlobal
|
|
@@ -76,11 +76,9 @@ function getSetCookie_platform(headers) {
|
|
|
76
76
|
var inExpiresDateRgs = /Expires\s*=\s*(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*$/i;
|
|
77
77
|
function getSetCookie_fallback(headers) {
|
|
78
78
|
const value = headers.get("set-cookie");
|
|
79
|
-
if (!value)
|
|
80
|
-
return void 0;
|
|
79
|
+
if (!value) return void 0;
|
|
81
80
|
let sepIndex = value.indexOf(",") + 1;
|
|
82
|
-
if (!sepIndex)
|
|
83
|
-
return value;
|
|
81
|
+
if (!sepIndex) return value;
|
|
84
82
|
let index = 0;
|
|
85
83
|
let setCookie = void 0;
|
|
86
84
|
let setCookies = void 0;
|
|
@@ -95,8 +93,7 @@ function getSetCookie_fallback(headers) {
|
|
|
95
93
|
setCookie = valuePart;
|
|
96
94
|
}
|
|
97
95
|
index = sepIndex;
|
|
98
|
-
while (value.charCodeAt(index) === 32)
|
|
99
|
-
index++;
|
|
96
|
+
while (value.charCodeAt(index) === 32) index++;
|
|
100
97
|
}
|
|
101
98
|
sepIndex = value.indexOf(",", sepIndex) + 1;
|
|
102
99
|
} while (sepIndex);
|
|
@@ -150,6 +147,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
150
147
|
appendHeader(response, "set-cookie", setCookies);
|
|
151
148
|
}
|
|
152
149
|
}
|
|
150
|
+
function normalizeError(error) {
|
|
151
|
+
if (error.cause && !error.message) {
|
|
152
|
+
error.message = error.cause.message;
|
|
153
|
+
error.stack || (error.stack = error.cause.stack);
|
|
154
|
+
}
|
|
155
|
+
return error;
|
|
156
|
+
}
|
|
153
157
|
function createMiddleware(fetch2, options) {
|
|
154
158
|
const {
|
|
155
159
|
origin = process.env.ORIGIN,
|
|
@@ -177,13 +181,14 @@ function createMiddleware(fetch2, options) {
|
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
function onSignalAborted() {
|
|
184
|
+
const error = normalizeError(signal.reason);
|
|
180
185
|
if (next) {
|
|
181
|
-
next(
|
|
186
|
+
next(error);
|
|
182
187
|
} else {
|
|
183
188
|
if (!res.destroyed && res.socket) {
|
|
184
189
|
res.socket.destroySoon();
|
|
185
190
|
}
|
|
186
|
-
console.error(
|
|
191
|
+
console.error(error);
|
|
187
192
|
}
|
|
188
193
|
}
|
|
189
194
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -194,7 +199,7 @@ function createMiddleware(fetch2, options) {
|
|
|
194
199
|
signal.addEventListener("abort", sendError);
|
|
195
200
|
}
|
|
196
201
|
function sendError() {
|
|
197
|
-
const { message, stack = "" } = signal.reason;
|
|
202
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
198
203
|
ws.send(
|
|
199
204
|
JSON.stringify({
|
|
200
205
|
type: "error",
|
|
@@ -228,6 +233,7 @@ function createMiddleware(fetch2, options) {
|
|
|
228
233
|
try {
|
|
229
234
|
response = await fetch2(request, platform);
|
|
230
235
|
} catch (err) {
|
|
236
|
+
normalizeError(err);
|
|
231
237
|
if (next) {
|
|
232
238
|
next(err);
|
|
233
239
|
} else {
|
|
@@ -274,7 +280,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
274
280
|
}
|
|
275
281
|
}
|
|
276
282
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
277
|
-
|
|
283
|
+
pull(controller) {
|
|
278
284
|
controller.error(
|
|
279
285
|
new Error(
|
|
280
286
|
"The request body stream was already consumed by something before Marko Run."
|
|
@@ -34,11 +34,9 @@ function getSetCookie_platform(headers) {
|
|
|
34
34
|
var inExpiresDateRgs = /Expires\s*=\s*(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s*$/i;
|
|
35
35
|
function getSetCookie_fallback(headers) {
|
|
36
36
|
const value = headers.get("set-cookie");
|
|
37
|
-
if (!value)
|
|
38
|
-
return void 0;
|
|
37
|
+
if (!value) return void 0;
|
|
39
38
|
let sepIndex = value.indexOf(",") + 1;
|
|
40
|
-
if (!sepIndex)
|
|
41
|
-
return value;
|
|
39
|
+
if (!sepIndex) return value;
|
|
42
40
|
let index = 0;
|
|
43
41
|
let setCookie = void 0;
|
|
44
42
|
let setCookies = void 0;
|
|
@@ -53,8 +51,7 @@ function getSetCookie_fallback(headers) {
|
|
|
53
51
|
setCookie = valuePart;
|
|
54
52
|
}
|
|
55
53
|
index = sepIndex;
|
|
56
|
-
while (value.charCodeAt(index) === 32)
|
|
57
|
-
index++;
|
|
54
|
+
while (value.charCodeAt(index) === 32) index++;
|
|
58
55
|
}
|
|
59
56
|
sepIndex = value.indexOf(",", sepIndex) + 1;
|
|
60
57
|
} while (sepIndex);
|
|
@@ -108,6 +105,13 @@ function copyResponseHeaders(response, headers) {
|
|
|
108
105
|
appendHeader(response, "set-cookie", setCookies);
|
|
109
106
|
}
|
|
110
107
|
}
|
|
108
|
+
function normalizeError(error) {
|
|
109
|
+
if (error.cause && !error.message) {
|
|
110
|
+
error.message = error.cause.message;
|
|
111
|
+
error.stack || (error.stack = error.cause.stack);
|
|
112
|
+
}
|
|
113
|
+
return error;
|
|
114
|
+
}
|
|
111
115
|
function createMiddleware(fetch2, options) {
|
|
112
116
|
const {
|
|
113
117
|
origin = process.env.ORIGIN,
|
|
@@ -135,13 +139,14 @@ function createMiddleware(fetch2, options) {
|
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
function onSignalAborted() {
|
|
142
|
+
const error = normalizeError(signal.reason);
|
|
138
143
|
if (next) {
|
|
139
|
-
next(
|
|
144
|
+
next(error);
|
|
140
145
|
} else {
|
|
141
146
|
if (!res.destroyed && res.socket) {
|
|
142
147
|
res.socket.destroySoon();
|
|
143
148
|
}
|
|
144
|
-
console.error(
|
|
149
|
+
console.error(error);
|
|
145
150
|
}
|
|
146
151
|
}
|
|
147
152
|
if (process.env.NODE_ENV !== "production" && globalThis.__marko_run_dev__ && ((_a = req.headers.accept) == null ? void 0 : _a.includes("text/html"))) {
|
|
@@ -152,7 +157,7 @@ function createMiddleware(fetch2, options) {
|
|
|
152
157
|
signal.addEventListener("abort", sendError);
|
|
153
158
|
}
|
|
154
159
|
function sendError() {
|
|
155
|
-
const { message, stack = "" } = signal.reason;
|
|
160
|
+
const { message, stack = "" } = normalizeError(signal.reason);
|
|
156
161
|
ws.send(
|
|
157
162
|
JSON.stringify({
|
|
158
163
|
type: "error",
|
|
@@ -186,6 +191,7 @@ function createMiddleware(fetch2, options) {
|
|
|
186
191
|
try {
|
|
187
192
|
response = await fetch2(request, platform);
|
|
188
193
|
} catch (err) {
|
|
194
|
+
normalizeError(err);
|
|
189
195
|
if (next) {
|
|
190
196
|
next(err);
|
|
191
197
|
} else {
|
|
@@ -232,7 +238,7 @@ async function writeResponse(reader, res, controller) {
|
|
|
232
238
|
}
|
|
233
239
|
}
|
|
234
240
|
var bodyConsumedErrorStream = new ReadableStream({
|
|
235
|
-
|
|
241
|
+
pull(controller) {
|
|
236
242
|
controller.error(
|
|
237
243
|
new Error(
|
|
238
244
|
"The request body stream was already consumed by something before Marko Run."
|
package/dist/adapter/utils.d.ts
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import type { Rollup } from "vite";
|
|
2
|
+
type RollupError = Rollup.RollupError;
|
|
3
|
+
export declare function prepareError(err: Error | RollupError): {
|
|
4
|
+
message: string;
|
|
5
|
+
stack: string;
|
|
6
|
+
id: string | undefined;
|
|
7
|
+
frame: string;
|
|
8
|
+
plugin: string | undefined;
|
|
9
|
+
pluginCode: string | undefined;
|
|
10
|
+
loc: {
|
|
11
|
+
column: number;
|
|
12
|
+
file?: string;
|
|
13
|
+
line: number;
|
|
14
|
+
} | undefined;
|
|
15
|
+
};
|
|
1
16
|
export declare function logInfoBox(address: string, explorer?: string): void;
|
|
2
17
|
export declare function drawMarkoBox(message: string, options?: LogoOptions): string[];
|
|
3
18
|
export interface LogoOptions {
|
|
@@ -8,3 +23,4 @@ export declare function drawMarkoLogo(options?: LogoOptions): {
|
|
|
8
23
|
lines: string[];
|
|
9
24
|
width: number;
|
|
10
25
|
};
|
|
26
|
+
export {};
|