@epic-web/workshop-app 5.1.1 → 5.2.0
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/build/client/assets/{_-ZHCWB__B.js → _-CWSCXcBv.js} +2 -2
- package/build/client/assets/{_-ZHCWB__B.js.map → _-CWSCXcBv.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber-BFTlBdr4.js → _exerciseNumber-D6KsriIk.js} +2 -2
- package/build/client/assets/_exerciseNumber-D6KsriIk.js.map +1 -0
- package/build/client/assets/{_exerciseNumber_._stepNumber-_687iGFh.js → _exerciseNumber_._stepNumber-BA2Xhzqs.js} +2 -2
- package/build/client/assets/_exerciseNumber_._stepNumber-BA2Xhzqs.js.map +1 -0
- package/build/client/assets/{_exerciseNumber_.finished-BEfn-nJi.js → _exerciseNumber_.finished-DEzaS_Ji.js} +2 -2
- package/build/client/assets/_exerciseNumber_.finished-DEzaS_Ji.js.map +1 -0
- package/build/client/assets/{_layout-Cfbi6StB.js → _layout-88n0To1b.js} +2 -2
- package/build/client/assets/{_layout-Cfbi6StB.js.map → _layout-88n0To1b.js.map} +1 -1
- package/build/client/assets/{_layout-BriOqd2R.js → _layout-C5yGKUmm.js} +2 -2
- package/build/client/assets/_layout-C5yGKUmm.js.map +1 -0
- package/build/client/assets/{_layout-frPHZWgR.js → _layout-T2hZtl0D.js} +2 -2
- package/build/client/assets/_layout-T2hZtl0D.js.map +1 -0
- package/build/client/assets/{_layout-BLJr2x2F.js → _layout-gyrNluke.js} +2 -2
- package/build/client/assets/_layout-gyrNluke.js.map +1 -0
- package/build/client/assets/{accordion-DuE9VejZ.js → accordion-DC885Li1.js} +2 -2
- package/build/client/assets/{accordion-DuE9VejZ.js.map → accordion-DC885Li1.js.map} +1 -1
- package/build/client/assets/{account-DDuV9rZX.js → account-CPFwPYf1.js} +2 -2
- package/build/client/assets/account-CPFwPYf1.js.map +1 -0
- package/build/client/assets/app-CM8yuYni.js +2 -0
- package/build/client/assets/app-CM8yuYni.js.map +1 -0
- package/build/client/assets/{button-CMkJ8p0a.js → button-DQ001ob0.js} +2 -2
- package/build/client/assets/{button-CMkJ8p0a.js.map → button-DQ001ob0.js.map} +1 -1
- package/build/client/assets/components-9EGYHTc_.js +158 -0
- package/build/client/assets/components-9EGYHTc_.js.map +1 -0
- package/build/client/assets/{diff-B6thd_Sf.js → diff-assn_bSK.js} +2 -2
- package/build/client/assets/{diff-B6thd_Sf.js.map → diff-assn_bSK.js.map} +1 -1
- package/build/client/assets/diff-jlCv3hv0.js +2 -0
- package/build/client/assets/diff-jlCv3hv0.js.map +1 -0
- package/build/client/assets/{discord-C9bVfiZ6.js → discord-CHsbqaqM.js} +2 -2
- package/build/client/assets/discord-CHsbqaqM.js.map +1 -0
- package/build/client/assets/discord-DoeazikD.js +2 -0
- package/build/client/assets/discord-DoeazikD.js.map +1 -0
- package/build/client/assets/entry.client-BTYTUpFV.js +44 -0
- package/build/client/assets/entry.client-BTYTUpFV.js.map +1 -0
- package/build/client/assets/epic-video-GDpD7_Qt.js +3053 -0
- package/build/client/assets/epic-video-GDpD7_Qt.js.map +1 -0
- package/build/client/assets/{error-boundary-BcGxKpte.js → error-boundary-1-dmC941.js} +2 -2
- package/build/client/assets/{error-boundary-BcGxKpte.js.map → error-boundary-1-dmC941.js.map} +1 -1
- package/build/client/assets/{finished-C2dgX1d-.js → finished-DVV0zwmP.js} +2 -2
- package/build/client/assets/finished-DVV0zwmP.js.map +1 -0
- package/build/client/assets/{index-DBrRQJxF.js → index-BCxBKsqT.js} +2 -2
- package/build/client/assets/{index-DBrRQJxF.js.map → index-BCxBKsqT.js.map} +1 -1
- package/build/client/assets/index-BFGhCX_U.js +38 -0
- package/build/client/assets/index-BFGhCX_U.js.map +1 -0
- package/build/client/assets/index-BuA_RWlU.js +2 -0
- package/build/client/assets/index-BuA_RWlU.js.map +1 -0
- package/build/client/assets/index-BuoaxPEj.js +42 -0
- package/build/client/assets/index-BuoaxPEj.js.map +1 -0
- package/build/client/assets/index-CmmC-_8P.js +2 -0
- package/build/client/assets/index-CmmC-_8P.js.map +1 -0
- package/build/client/assets/{index-YtpQLUzj.js → index-DRH72MzK.js} +2 -2
- package/build/client/assets/{index-YtpQLUzj.js.map → index-DRH72MzK.js.map} +1 -1
- package/build/client/assets/{index-CuV1bRbu.js → index-KgMLc41c.js} +2 -2
- package/build/client/assets/index-KgMLc41c.js.map +1 -0
- package/build/client/assets/index-_J-F_Dnc.js +36 -0
- package/build/client/assets/index-_J-F_Dnc.js.map +1 -0
- package/build/client/assets/{loading-Br41_Pbf.js → loading-Dk0n07O3.js} +2 -2
- package/build/client/assets/{loading-Br41_Pbf.js.map → loading-Dk0n07O3.js.map} +1 -1
- package/build/client/assets/{login-kjV7hrVt.js → login-pZYDEC_l.js} +2 -2
- package/build/client/assets/login-pZYDEC_l.js.map +1 -0
- package/build/client/assets/{manifest-b22910a7.js → manifest-c9f53a94.js} +1 -1
- package/build/client/assets/mdx-hW1uYjc1.js +2 -0
- package/build/client/assets/mdx-hW1uYjc1.js.map +1 -0
- package/build/client/assets/misc-BJtHv_Jh.js +2 -0
- package/build/client/assets/misc-BJtHv_Jh.js.map +1 -0
- package/build/client/assets/{nav-chevrons-DYiI8EMU.js → nav-chevrons-CgbSMLeb.js} +2 -2
- package/build/client/assets/{nav-chevrons-DYiI8EMU.js.map → nav-chevrons-CgbSMLeb.js.map} +1 -1
- package/build/client/assets/{onboarding-B4Z_yevk.js → onboarding-DCuSqnkZ.js} +2 -2
- package/build/client/assets/onboarding-DCuSqnkZ.js.map +1 -0
- package/build/client/assets/{pe-CvPIToj6.js → pe-ChIwTk8v.js} +2 -2
- package/build/client/assets/pe-ChIwTk8v.js.map +1 -0
- package/build/client/assets/presence-CdyMdOKk.js +28 -0
- package/build/client/assets/presence-CdyMdOKk.js.map +1 -0
- package/build/client/assets/{preview-DZcdG4kw.js → preview-CW_12I0i.js} +2 -2
- package/build/client/assets/preview-CW_12I0i.js.map +1 -0
- package/build/client/assets/{product-mjsTrqXs.js → product-C1ynnrN_.js} +2 -2
- package/build/client/assets/{product-mjsTrqXs.js.map → product-C1ynnrN_.js.map} +1 -1
- package/build/client/assets/progress-DAB3nDa2.js +2 -0
- package/build/client/assets/progress-DAB3nDa2.js.map +1 -0
- package/build/client/assets/{progress-bar-F8_2mvYp.js → progress-bar-Cj5R4Zk7.js} +2 -2
- package/build/client/assets/{progress-bar-F8_2mvYp.js.map → progress-bar-Cj5R4Zk7.js.map} +1 -1
- package/build/client/assets/{request-info-DGnmXtfj.js → request-info-DCIQLE6H.js} +2 -2
- package/build/client/assets/{request-info-DGnmXtfj.js.map → request-info-DCIQLE6H.js.map} +1 -1
- package/build/client/assets/{revalidation-ws-DcvYvzyj.js → revalidation-ws-DU-PzW-_.js} +2 -2
- package/build/client/assets/{revalidation-ws-DcvYvzyj.js.map → revalidation-ws-DU-PzW-_.js.map} +1 -1
- package/build/client/assets/{root-Cl86OUog.js → root-DojjHZlY.js} +4 -4
- package/build/client/assets/root-DojjHZlY.js.map +1 -0
- package/build/client/assets/set-playground-S_rIwJAa.js +2 -0
- package/build/client/assets/set-playground-S_rIwJAa.js.map +1 -0
- package/build/client/assets/{support-B0E_F4Zh.js → support-BNS-kEhc.js} +2 -2
- package/build/client/assets/{support-B0E_F4Zh.js.map → support-BNS-kEhc.js.map} +1 -1
- package/build/client/assets/tailwind-B5AAMtGC.css +1 -0
- package/build/client/assets/test-CtH75Laz.js +2 -0
- package/build/client/assets/test-CtH75Laz.js.map +1 -0
- package/build/client/assets/{tests-BeAEgPAw.js → tests-CTs57UUU.js} +2 -2
- package/build/client/assets/tests-CTs57UUU.js.map +1 -0
- package/build/client/assets/tooltip-BgynKV2c.js +2 -0
- package/build/client/assets/tooltip-BgynKV2c.js.map +1 -0
- package/build/client/assets/use-event-source-x59d4R2Z.js +2 -0
- package/build/client/assets/use-event-source-x59d4R2Z.js.map +1 -0
- package/build/client/assets/{user-Boua6jiU.js → user-BBryXlM_.js} +2 -2
- package/build/client/assets/{user-Boua6jiU.js.map → user-BBryXlM_.js.map} +1 -1
- package/build/client/assets/{workshop-config-Ce9sSc3I.js → workshop-config-DJY2cXU_.js} +2 -2
- package/build/client/assets/{workshop-config-Ce9sSc3I.js.map → workshop-config-DJY2cXU_.js.map} +1 -1
- package/build/server/index.js +253 -238
- package/build/server/index.js.map +1 -1
- package/dist/server/index.js +7 -14
- package/package.json +68 -73
- package/build/client/assets/_exerciseNumber-BFTlBdr4.js.map +0 -1
- package/build/client/assets/_exerciseNumber_._stepNumber-_687iGFh.js.map +0 -1
- package/build/client/assets/_exerciseNumber_.finished-BEfn-nJi.js.map +0 -1
- package/build/client/assets/_layout-BLJr2x2F.js.map +0 -1
- package/build/client/assets/_layout-BriOqd2R.js.map +0 -1
- package/build/client/assets/_layout-frPHZWgR.js.map +0 -1
- package/build/client/assets/account-DDuV9rZX.js.map +0 -1
- package/build/client/assets/app-wbMCZEiv.js +0 -2
- package/build/client/assets/app-wbMCZEiv.js.map +0 -1
- package/build/client/assets/components-DZ8XIeZ3.js +0 -166
- package/build/client/assets/components-DZ8XIeZ3.js.map +0 -1
- package/build/client/assets/diff-BEk79KPK.js +0 -2
- package/build/client/assets/diff-BEk79KPK.js.map +0 -1
- package/build/client/assets/discord-C9bVfiZ6.js.map +0 -1
- package/build/client/assets/discord-DYeU0QX6.js +0 -2
- package/build/client/assets/discord-DYeU0QX6.js.map +0 -1
- package/build/client/assets/entry.client-CW5CUf_W.js +0 -43
- package/build/client/assets/entry.client-CW5CUf_W.js.map +0 -1
- package/build/client/assets/epic-video-bs7WmhbC.js +0 -2988
- package/build/client/assets/epic-video-bs7WmhbC.js.map +0 -1
- package/build/client/assets/finished-C2dgX1d-.js.map +0 -1
- package/build/client/assets/index-BczhSZ3e.js +0 -2
- package/build/client/assets/index-BczhSZ3e.js.map +0 -1
- package/build/client/assets/index-BjNhezSK.js +0 -42
- package/build/client/assets/index-BjNhezSK.js.map +0 -1
- package/build/client/assets/index-BvihEwfB.js +0 -36
- package/build/client/assets/index-BvihEwfB.js.map +0 -1
- package/build/client/assets/index-C2yr7Uiu.js +0 -2
- package/build/client/assets/index-C2yr7Uiu.js.map +0 -1
- package/build/client/assets/index-CuV1bRbu.js.map +0 -1
- package/build/client/assets/index-DF_XBInP.js +0 -37
- package/build/client/assets/index-DF_XBInP.js.map +0 -1
- package/build/client/assets/login-kjV7hrVt.js.map +0 -1
- package/build/client/assets/mdx-CRxPouxB.js +0 -2
- package/build/client/assets/mdx-CRxPouxB.js.map +0 -1
- package/build/client/assets/misc-BE75ioh8.js +0 -2
- package/build/client/assets/misc-BE75ioh8.js.map +0 -1
- package/build/client/assets/onboarding-B4Z_yevk.js.map +0 -1
- package/build/client/assets/pe-CvPIToj6.js.map +0 -1
- package/build/client/assets/presence-Dd98AJ_5.js +0 -28
- package/build/client/assets/presence-Dd98AJ_5.js.map +0 -1
- package/build/client/assets/preview-DZcdG4kw.js.map +0 -1
- package/build/client/assets/progress-Co-59mG2.js +0 -2
- package/build/client/assets/progress-Co-59mG2.js.map +0 -1
- package/build/client/assets/root-Cl86OUog.js.map +0 -1
- package/build/client/assets/set-playground-pMKmtPtz.js +0 -2
- package/build/client/assets/set-playground-pMKmtPtz.js.map +0 -1
- package/build/client/assets/tailwind-B9pSujyx.css +0 -1
- package/build/client/assets/test-B6zIK2V6.js +0 -2
- package/build/client/assets/test-B6zIK2V6.js.map +0 -1
- package/build/client/assets/tests-BeAEgPAw.js.map +0 -1
- package/build/client/assets/tooltip-6-WS-Xux.js +0 -2
- package/build/client/assets/tooltip-6-WS-Xux.js.map +0 -1
- package/build/client/assets/use-event-source-CCGBLG92.js +0 -2
- package/build/client/assets/use-event-source-CCGBLG92.js.map +0 -1
package/build/server/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { PassThrough } from "stream";
|
|
3
|
-
import { createReadableStreamFromReadable,
|
|
4
|
-
import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation,
|
|
3
|
+
import { createReadableStreamFromReadable, unstable_data as unstable_data$1, createCookieSessionStorage, redirect as redirect$1 } from "@remix-run/node";
|
|
4
|
+
import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation, unstable_data, redirect, useFetcher, useLoaderData, Outlet, Meta, Links, ScrollRestoration, Scripts, NavLink, Form, Await, useSearchParams, useSubmit, useNavigate } from "@remix-run/react";
|
|
5
5
|
import { isbot } from "isbot";
|
|
6
6
|
import { renderToPipeableStream, renderToStaticMarkup } from "react-dom/server";
|
|
7
7
|
import path from "node:path";
|
|
@@ -79,7 +79,8 @@ import inspector from "node:inspector";
|
|
|
79
79
|
import { Resvg } from "@resvg/resvg-js";
|
|
80
80
|
import satori from "satori";
|
|
81
81
|
import { generateRobotsTxt, generateSitemap } from "@nasa-gcn/remix-seo";
|
|
82
|
-
const
|
|
82
|
+
const streamTimeout = 15e3;
|
|
83
|
+
const ABORT_DELAY = streamTimeout + 1e3;
|
|
83
84
|
function handleRequest(request, responseStatusCode, responseHeaders, remixContext) {
|
|
84
85
|
const callbackName = isbot(request.headers.get("user-agent")) ? "onAllReady" : "onShellReady";
|
|
85
86
|
return new Promise((resolve, reject) => {
|
|
@@ -112,7 +113,8 @@ function handleRequest(request, responseStatusCode, responseHeaders, remixContex
|
|
|
112
113
|
}
|
|
113
114
|
const entryServer = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
114
115
|
__proto__: null,
|
|
115
|
-
default: handleRequest
|
|
116
|
+
default: handleRequest,
|
|
117
|
+
streamTimeout
|
|
116
118
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
117
119
|
const partykitRoom = "epic-web-presence";
|
|
118
120
|
const partykitBaseUrl = `https://epic-web-presence.kentcdodds.partykit.dev/parties/main/${partykitRoom}`;
|
|
@@ -777,12 +779,12 @@ function ensureProgressiveEnhancement(formData, responseInit) {
|
|
|
777
779
|
throw redirect(safeRedirect(redirectTo), responseInit == null ? void 0 : responseInit());
|
|
778
780
|
}
|
|
779
781
|
}
|
|
780
|
-
function
|
|
782
|
+
function dataWithPE(formData, ...args) {
|
|
781
783
|
ensureProgressiveEnhancement(formData, () => ({
|
|
782
784
|
statusText: JSON.stringify(args[0]),
|
|
783
785
|
...typeof args[1] === "number" ? { status: args[1] } : args[1]
|
|
784
786
|
}));
|
|
785
|
-
return
|
|
787
|
+
return unstable_data(...args);
|
|
786
788
|
}
|
|
787
789
|
const cookieName$1 = "EpicShop_theme";
|
|
788
790
|
function getTheme(request) {
|
|
@@ -807,7 +809,7 @@ async function action$b({ request }) {
|
|
|
807
809
|
schema: ThemeFormSchema
|
|
808
810
|
});
|
|
809
811
|
if (submission.status !== "success") {
|
|
810
|
-
return
|
|
812
|
+
return unstable_data$1(submission.reply(), {
|
|
811
813
|
// You can also use the status to determine the HTTP status code
|
|
812
814
|
status: submission.status === "error" ? 400 : 200
|
|
813
815
|
});
|
|
@@ -816,7 +818,7 @@ async function action$b({ request }) {
|
|
|
816
818
|
const responseInit = {
|
|
817
819
|
headers: { "set-cookie": setTheme(theme) }
|
|
818
820
|
};
|
|
819
|
-
return
|
|
821
|
+
return dataWithPE(formData, submission.reply(), responseInit);
|
|
820
822
|
}
|
|
821
823
|
function ThemeSwitch() {
|
|
822
824
|
const requestInfo = useRequestInfo();
|
|
@@ -878,7 +880,7 @@ const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
878
880
|
useTheme
|
|
879
881
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
880
882
|
const appStylesheetUrl = "/assets/app-b7uXHF5m.css";
|
|
881
|
-
const tailwindStylesheetUrl = "/assets/tailwind-
|
|
883
|
+
const tailwindStylesheetUrl = "/assets/tailwind-B5AAMtGC.css";
|
|
882
884
|
const cookieName = "EpicShop_confetti";
|
|
883
885
|
function getConfetti(request) {
|
|
884
886
|
const cookieHeader = request.headers.get("cookie");
|
|
@@ -1512,13 +1514,13 @@ const links = () => {
|
|
|
1512
1514
|
{ rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }
|
|
1513
1515
|
];
|
|
1514
1516
|
};
|
|
1515
|
-
const meta$5 = ({ data }) => {
|
|
1516
|
-
if (!
|
|
1517
|
+
const meta$5 = ({ data: data2 }) => {
|
|
1518
|
+
if (!data2) return [];
|
|
1517
1519
|
return getSeoMetaTags({
|
|
1518
|
-
instructor:
|
|
1519
|
-
title:
|
|
1520
|
-
description:
|
|
1521
|
-
requestInfo:
|
|
1520
|
+
instructor: data2.instructor,
|
|
1521
|
+
title: data2.workshopTitle,
|
|
1522
|
+
description: data2.workshopSubtitle,
|
|
1523
|
+
requestInfo: data2.requestInfo
|
|
1522
1524
|
});
|
|
1523
1525
|
};
|
|
1524
1526
|
async function loader$y({ request }) {
|
|
@@ -1555,7 +1557,7 @@ async function loader$y({ request }) {
|
|
|
1555
1557
|
request,
|
|
1556
1558
|
timings
|
|
1557
1559
|
});
|
|
1558
|
-
return
|
|
1560
|
+
return unstable_data$1(
|
|
1559
1561
|
{
|
|
1560
1562
|
...asyncStuff,
|
|
1561
1563
|
workshopConfig,
|
|
@@ -1628,7 +1630,7 @@ function Document({
|
|
|
1628
1630
|
] });
|
|
1629
1631
|
}
|
|
1630
1632
|
function App$1() {
|
|
1631
|
-
const
|
|
1633
|
+
const data2 = useLoaderData();
|
|
1632
1634
|
const navigation = useNavigation();
|
|
1633
1635
|
const showSpinner = useSpinDelay(navigation.state !== "idle", {
|
|
1634
1636
|
delay: 400,
|
|
@@ -1645,11 +1647,11 @@ function App$1() {
|
|
|
1645
1647
|
{ "cursor-progress": showSpinner },
|
|
1646
1648
|
altDown ? "alt-down" : null
|
|
1647
1649
|
),
|
|
1648
|
-
env:
|
|
1650
|
+
env: data2.ENV,
|
|
1649
1651
|
children: [
|
|
1650
1652
|
/* @__PURE__ */ jsx(Outlet, {}),
|
|
1651
|
-
/* @__PURE__ */ jsx(Confetti, { id:
|
|
1652
|
-
/* @__PURE__ */ jsx(EpicToaster, { toast:
|
|
1653
|
+
/* @__PURE__ */ jsx(Confetti, { id: data2.confettiId }),
|
|
1654
|
+
/* @__PURE__ */ jsx(EpicToaster, { toast: data2.toast }),
|
|
1653
1655
|
/* @__PURE__ */ jsx(EpicProgress, {})
|
|
1654
1656
|
]
|
|
1655
1657
|
}
|
|
@@ -2114,7 +2116,7 @@ async function action$a({ request }) {
|
|
|
2114
2116
|
return otherAreFinished ? `You completed exercise ${exerciseNumber}!` : null;
|
|
2115
2117
|
}
|
|
2116
2118
|
const announcement = getCompletionAnnouncement();
|
|
2117
|
-
return
|
|
2119
|
+
return dataWithPE(formData, result, {
|
|
2118
2120
|
headers: combineHeaders(
|
|
2119
2121
|
announcement ? createConfettiHeaders() : null,
|
|
2120
2122
|
announcement ? await createToastHeaders({
|
|
@@ -2268,7 +2270,7 @@ async function loader$w({ request }) {
|
|
|
2268
2270
|
(_a = extractNumbersAndTypeFromAppNameOrPath(playgroundAppName ?? "")) == null ? void 0 : _a.exerciseNumber
|
|
2269
2271
|
)
|
|
2270
2272
|
};
|
|
2271
|
-
const result =
|
|
2273
|
+
const result = unstable_data$1(
|
|
2272
2274
|
{
|
|
2273
2275
|
workshopTitle,
|
|
2274
2276
|
exercises: exercises.map((e) => ({
|
|
@@ -2653,7 +2655,7 @@ function MobileNavigation({
|
|
|
2653
2655
|
isMenuOpened,
|
|
2654
2656
|
onMenuOpenChange: setMenuOpened
|
|
2655
2657
|
}) {
|
|
2656
|
-
const
|
|
2658
|
+
const data2 = useLoaderData();
|
|
2657
2659
|
const user = useOptionalUser();
|
|
2658
2660
|
const nextExerciseRoute = useNextExerciseRoute();
|
|
2659
2661
|
const params = useParams();
|
|
@@ -2682,7 +2684,7 @@ function MobileNavigation({
|
|
|
2682
2684
|
/* @__PURE__ */ jsx(
|
|
2683
2685
|
NavToggle,
|
|
2684
2686
|
{
|
|
2685
|
-
title:
|
|
2687
|
+
title: data2.workshopTitle,
|
|
2686
2688
|
isMenuOpened,
|
|
2687
2689
|
setMenuOpened
|
|
2688
2690
|
}
|
|
@@ -2715,9 +2717,9 @@ function MobileNavigation({
|
|
|
2715
2717
|
children: "Home"
|
|
2716
2718
|
}
|
|
2717
2719
|
) }),
|
|
2718
|
-
|
|
2720
|
+
data2.exercises.map(({ exerciseNumber, title, steps }) => {
|
|
2719
2721
|
const isActive = Number(params.exerciseNumber) === exerciseNumber;
|
|
2720
|
-
const showPlayground = !isActive &&
|
|
2722
|
+
const showPlayground = !isActive && data2.playground.exerciseNumber === exerciseNumber;
|
|
2721
2723
|
const exerciseNum = exerciseNumber.toString().padStart(2, "0");
|
|
2722
2724
|
return /* @__PURE__ */ jsxs(
|
|
2723
2725
|
NavigationExerciseListItem,
|
|
@@ -2773,7 +2775,7 @@ function MobileNavigation({
|
|
|
2773
2775
|
steps.filter(Boolean).map(({ name, stepNumber, title: title2 }) => {
|
|
2774
2776
|
const isActive2 = Number(params.stepNumber) === stepNumber;
|
|
2775
2777
|
const step = stepNumber.toString().padStart(2, "0");
|
|
2776
|
-
const isPlayground = name ===
|
|
2778
|
+
const isPlayground = name === data2.playground.appName;
|
|
2777
2779
|
return /* @__PURE__ */ jsx(
|
|
2778
2780
|
NavigationExerciseStepListItem,
|
|
2779
2781
|
{
|
|
@@ -2944,12 +2946,12 @@ function Navigation({
|
|
|
2944
2946
|
isMenuOpened,
|
|
2945
2947
|
onMenuOpenChange: setMenuOpened
|
|
2946
2948
|
}) {
|
|
2947
|
-
const
|
|
2949
|
+
const data2 = useLoaderData();
|
|
2948
2950
|
const user = useOptionalUser();
|
|
2949
2951
|
const nextExerciseRoute = useNextExerciseRoute();
|
|
2950
2952
|
const params = useParams();
|
|
2951
2953
|
const { users } = usePresence();
|
|
2952
|
-
const exercise =
|
|
2954
|
+
const exercise = data2.exercises.find(
|
|
2953
2955
|
(e) => e.exerciseNumber === Number(params.exerciseNumber)
|
|
2954
2956
|
);
|
|
2955
2957
|
const app = params.type === "solution" ? exercise == null ? void 0 : exercise.solutions.find(
|
|
@@ -2986,7 +2988,7 @@ function Navigation({
|
|
|
2986
2988
|
/* @__PURE__ */ jsx(
|
|
2987
2989
|
NavToggle,
|
|
2988
2990
|
{
|
|
2989
|
-
title:
|
|
2991
|
+
title: data2.workshopTitle,
|
|
2990
2992
|
menuControls,
|
|
2991
2993
|
isMenuOpened,
|
|
2992
2994
|
setMenuOpened
|
|
@@ -3021,9 +3023,9 @@ function Navigation({
|
|
|
3021
3023
|
children: "Home"
|
|
3022
3024
|
}
|
|
3023
3025
|
) }),
|
|
3024
|
-
|
|
3026
|
+
data2.exercises.map(({ exerciseNumber, title, steps }) => {
|
|
3025
3027
|
const isActive = Number(params.exerciseNumber) === exerciseNumber;
|
|
3026
|
-
const showPlayground = !isActive &&
|
|
3028
|
+
const showPlayground = !isActive && data2.playground.exerciseNumber === exerciseNumber;
|
|
3027
3029
|
const exerciseNum = exerciseNumber.toString().padStart(2, "0");
|
|
3028
3030
|
return /* @__PURE__ */ jsxs(
|
|
3029
3031
|
NavigationExerciseListItem,
|
|
@@ -3079,7 +3081,7 @@ function Navigation({
|
|
|
3079
3081
|
steps.filter(Boolean).map(({ name, stepNumber, title: title2 }) => {
|
|
3080
3082
|
const isActive2 = Number(params.stepNumber) === stepNumber;
|
|
3081
3083
|
const step = stepNumber.toString().padStart(2, "0");
|
|
3082
|
-
const isPlayground = name ===
|
|
3084
|
+
const isPlayground = name === data2.playground.appName;
|
|
3083
3085
|
return /* @__PURE__ */ jsx(
|
|
3084
3086
|
NavigationExerciseStepListItem,
|
|
3085
3087
|
{
|
|
@@ -3487,7 +3489,7 @@ const handle$7 = {
|
|
|
3487
3489
|
async function loader$u({ request }) {
|
|
3488
3490
|
ensureUndeployed();
|
|
3489
3491
|
await requireAuthInfo({ request });
|
|
3490
|
-
return
|
|
3492
|
+
return { discordAuthUrl: getDiscordAuthURL() };
|
|
3491
3493
|
}
|
|
3492
3494
|
async function action$9({ request }) {
|
|
3493
3495
|
ensureUndeployed();
|
|
@@ -4181,7 +4183,7 @@ const handle$6 = {
|
|
|
4181
4183
|
getSitemapEntries: () => null
|
|
4182
4184
|
};
|
|
4183
4185
|
async function loader$o() {
|
|
4184
|
-
return
|
|
4186
|
+
return { discordAuthUrl: getDiscordAuthURL() };
|
|
4185
4187
|
}
|
|
4186
4188
|
function useDiscordCTALink({
|
|
4187
4189
|
discordAuthUrl
|
|
@@ -4315,13 +4317,13 @@ const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
4315
4317
|
const PlaybackTimeSchema = z.object({
|
|
4316
4318
|
time: z.number(),
|
|
4317
4319
|
expiresAt: z.string()
|
|
4318
|
-
}).transform((
|
|
4319
|
-
return { time: Number(
|
|
4320
|
+
}).transform((data2) => {
|
|
4321
|
+
return { time: Number(data2.time), expiresAt: new Date(data2.expiresAt) };
|
|
4320
4322
|
});
|
|
4321
4323
|
function usePlayerPreferences() {
|
|
4322
4324
|
var _a;
|
|
4323
|
-
const
|
|
4324
|
-
return ((_a =
|
|
4325
|
+
const data2 = useRouteLoaderData("root");
|
|
4326
|
+
return ((_a = data2 == null ? void 0 : data2.preferences) == null ? void 0 : _a.player) ?? null;
|
|
4325
4327
|
}
|
|
4326
4328
|
const ignoredInputs = [
|
|
4327
4329
|
"INPUT",
|
|
@@ -4345,12 +4347,12 @@ function shouldIgnoreHotkey(el) {
|
|
|
4345
4347
|
async function action$7({ request }) {
|
|
4346
4348
|
const result = PlayerPreferencesSchema.safeParse(await request.json());
|
|
4347
4349
|
if (!result.success) {
|
|
4348
|
-
return
|
|
4350
|
+
return unstable_data$1({ status: "error", error: result.error.flatten() }, {
|
|
4349
4351
|
status: 400
|
|
4350
4352
|
});
|
|
4351
4353
|
}
|
|
4352
4354
|
await setPlayerPreferences(result.data);
|
|
4353
|
-
return
|
|
4355
|
+
return { status: "success" };
|
|
4354
4356
|
}
|
|
4355
4357
|
function useLatest(value) {
|
|
4356
4358
|
const ref = React.useRef(value);
|
|
@@ -5443,13 +5445,13 @@ async function action$6({ request }) {
|
|
|
5443
5445
|
results.push(await launchEditor(file.filepath, file.line, file.column));
|
|
5444
5446
|
}
|
|
5445
5447
|
if (results.every((r) => r.status === "success")) {
|
|
5446
|
-
return
|
|
5448
|
+
return dataWithPE(formData, { status: "success" });
|
|
5447
5449
|
} else {
|
|
5448
5450
|
const messages = results.map(
|
|
5449
5451
|
(r, index, array) => r.status === "error" ? array.length > 1 ? `${index}. ${r.message}` : r.message : null
|
|
5450
5452
|
).filter(Boolean).join("\n");
|
|
5451
5453
|
console.error("Launch editor error:", messages);
|
|
5452
|
-
return
|
|
5454
|
+
return dataWithPE(
|
|
5453
5455
|
formData,
|
|
5454
5456
|
{ status: "error", message: messages },
|
|
5455
5457
|
{
|
|
@@ -5791,17 +5793,17 @@ function Mdx({
|
|
|
5791
5793
|
return /* @__PURE__ */ jsx(Component, { components });
|
|
5792
5794
|
}
|
|
5793
5795
|
const meta$4 = ({
|
|
5794
|
-
data,
|
|
5796
|
+
data: data2,
|
|
5795
5797
|
matches
|
|
5796
5798
|
}) => {
|
|
5797
5799
|
var _a;
|
|
5798
|
-
const number =
|
|
5800
|
+
const number = data2 == null ? void 0 : data2.exercise.exerciseNumber.toString().padStart(2, "0");
|
|
5799
5801
|
const rootData = (_a = matches.find((m) => m.id === "root")) == null ? void 0 : _a.data;
|
|
5800
|
-
if (!
|
|
5802
|
+
if (!data2 || !rootData) return [{ title: "🦉 | Error" }];
|
|
5801
5803
|
return getSeoMetaTags({
|
|
5802
|
-
title: `📝 | ${number}. ${
|
|
5803
|
-
description: `Introduction for ${number}. ${
|
|
5804
|
-
ogTitle:
|
|
5804
|
+
title: `📝 | ${number}. ${data2.exercise.title} | ${rootData == null ? void 0 : rootData.workshopTitle}`,
|
|
5805
|
+
description: `Introduction for ${number}. ${data2.exercise.title}`,
|
|
5806
|
+
ogTitle: data2.exercise.title,
|
|
5805
5807
|
ogDescription: `Introduction for exercise ${Number(number)}`,
|
|
5806
5808
|
instructor: rootData.instructor,
|
|
5807
5809
|
requestInfo: rootData.requestInfo
|
|
@@ -5830,7 +5832,7 @@ async function loader$n({ request, params }) {
|
|
|
5830
5832
|
);
|
|
5831
5833
|
const firstStep = exercise.steps.find(Boolean);
|
|
5832
5834
|
const articleId = `workshop-${slugify(workshopTitle)}-${exercise.exerciseNumber}-instructions`;
|
|
5833
|
-
return
|
|
5835
|
+
return unstable_data$1(
|
|
5834
5836
|
{
|
|
5835
5837
|
articleId,
|
|
5836
5838
|
exercise,
|
|
@@ -5865,11 +5867,11 @@ const headers$9 = ({ loaderHeaders, parentHeaders }) => {
|
|
|
5865
5867
|
const mdxComponents$4 = { h1: () => null };
|
|
5866
5868
|
function ExerciseNumberRoute() {
|
|
5867
5869
|
var _a;
|
|
5868
|
-
const
|
|
5870
|
+
const data2 = useLoaderData();
|
|
5869
5871
|
useRevalidationWS({
|
|
5870
|
-
watchPaths: [
|
|
5872
|
+
watchPaths: [data2.exerciseReadme.file]
|
|
5871
5873
|
});
|
|
5872
|
-
const firstStepNumber = String(((_a =
|
|
5874
|
+
const firstStepNumber = String(((_a = data2.firstStep) == null ? void 0 : _a.stepNumber) ?? "01").padStart(
|
|
5873
5875
|
2,
|
|
5874
5876
|
"0"
|
|
5875
5877
|
);
|
|
@@ -5877,18 +5879,18 @@ function ExerciseNumberRoute() {
|
|
|
5877
5879
|
/* @__PURE__ */ jsxs(
|
|
5878
5880
|
"article",
|
|
5879
5881
|
{
|
|
5880
|
-
id:
|
|
5882
|
+
id: data2.articleId,
|
|
5881
5883
|
className: "shadow-on-scrollbox flex w-full flex-1 flex-col gap-12 overflow-y-scroll px-3 py-4 pt-6 scrollbar-thin scrollbar-thumb-scrollbar md:px-10 md:py-12 md:pt-16",
|
|
5882
5884
|
children: [
|
|
5883
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h1", { className: "text-[clamp(3rem,6vw,7.5rem)] font-extrabold leading-none", children:
|
|
5884
|
-
/* @__PURE__ */ jsx("div", { children:
|
|
5885
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h1", { className: "text-[clamp(3rem,6vw,7.5rem)] font-extrabold leading-none", children: data2.exercise.title }) }),
|
|
5886
|
+
/* @__PURE__ */ jsx("div", { children: data2.exercise.instructionsCode ? /* @__PURE__ */ jsx(
|
|
5885
5887
|
EpicVideoInfoProvider,
|
|
5886
5888
|
{
|
|
5887
|
-
epicVideoInfosPromise:
|
|
5889
|
+
epicVideoInfosPromise: data2.epicVideoInfosPromise,
|
|
5888
5890
|
children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert sm:prose-lg", children: /* @__PURE__ */ jsx(
|
|
5889
5891
|
Mdx,
|
|
5890
5892
|
{
|
|
5891
|
-
code:
|
|
5893
|
+
code: data2.exercise.instructionsCode,
|
|
5892
5894
|
components: mdxComponents$4
|
|
5893
5895
|
}
|
|
5894
5896
|
) })
|
|
@@ -5896,20 +5898,20 @@ function ExerciseNumberRoute() {
|
|
|
5896
5898
|
) : "No instructions yet..." })
|
|
5897
5899
|
]
|
|
5898
5900
|
},
|
|
5899
|
-
|
|
5901
|
+
data2.articleId
|
|
5900
5902
|
),
|
|
5901
5903
|
/* @__PURE__ */ jsx(
|
|
5902
5904
|
ElementScrollRestoration,
|
|
5903
5905
|
{
|
|
5904
|
-
elementQuery: `#${
|
|
5906
|
+
elementQuery: `#${data2.articleId}`
|
|
5905
5907
|
},
|
|
5906
|
-
`scroll-${
|
|
5908
|
+
`scroll-${data2.articleId}`
|
|
5907
5909
|
),
|
|
5908
5910
|
/* @__PURE__ */ jsx(
|
|
5909
5911
|
ProgressToggle,
|
|
5910
5912
|
{
|
|
5911
5913
|
type: "instructions",
|
|
5912
|
-
exerciseNumber:
|
|
5914
|
+
exerciseNumber: data2.exerciseNumber,
|
|
5913
5915
|
className: "h-14 border-t px-6"
|
|
5914
5916
|
}
|
|
5915
5917
|
),
|
|
@@ -5918,14 +5920,14 @@ function ExerciseNumberRoute() {
|
|
|
5918
5920
|
/* @__PURE__ */ jsx(
|
|
5919
5921
|
EditFileOnGitHub,
|
|
5920
5922
|
{
|
|
5921
|
-
file:
|
|
5922
|
-
relativePath:
|
|
5923
|
+
file: data2.exerciseReadme.file,
|
|
5924
|
+
relativePath: data2.exerciseReadme.relativePath
|
|
5923
5925
|
}
|
|
5924
5926
|
),
|
|
5925
5927
|
/* @__PURE__ */ jsx(
|
|
5926
5928
|
Link,
|
|
5927
5929
|
{
|
|
5928
|
-
to: `${firstStepNumber}/${
|
|
5930
|
+
to: `${firstStepNumber}/${data2.firstType}`,
|
|
5929
5931
|
prefetch: "intent",
|
|
5930
5932
|
className: "flex h-full items-center justify-center bg-foreground px-7 text-background",
|
|
5931
5933
|
children: "Start Learning"
|
|
@@ -5964,7 +5966,7 @@ async function loader$m({ request, params }) {
|
|
|
5964
5966
|
if (!exercise) {
|
|
5965
5967
|
throw new Response("Not found", { status: 404 });
|
|
5966
5968
|
}
|
|
5967
|
-
const result =
|
|
5969
|
+
const result = unstable_data$1(
|
|
5968
5970
|
{
|
|
5969
5971
|
exerciseNumber: exercise.exerciseNumber,
|
|
5970
5972
|
exerciseTitle: exercise.title,
|
|
@@ -6229,8 +6231,8 @@ async function prepareForDiff(app1, app2) {
|
|
|
6229
6231
|
const { name: name2, ...rest2 } = pkg2;
|
|
6230
6232
|
return JSON.stringify(rest1) === JSON.stringify(rest2);
|
|
6231
6233
|
};
|
|
6232
|
-
const app1PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app1.fullPath, "package.json")) : {};
|
|
6233
|
-
const app2PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app2.fullPath, "package.json")) : {};
|
|
6234
|
+
const app1PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app1.fullPath, "package.json")).catch(() => ({})) : {};
|
|
6235
|
+
const app2PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app2.fullPath, "package.json")).catch(() => ({})) : {};
|
|
6234
6236
|
const pkgJsonIgnore = comparePkgJson(app1PkgJson, app2PkgJson) ? ["package.json"] : [];
|
|
6235
6237
|
const workshopIgnore = [
|
|
6236
6238
|
...await getDiffIgnore(path$1.join(workshopRoot, ".gitignore")),
|
|
@@ -6468,7 +6470,7 @@ async function action$5({ request }) {
|
|
|
6468
6470
|
};
|
|
6469
6471
|
const result = SetPlaygroundSchema.safeParse(rawData);
|
|
6470
6472
|
if (!result.success) {
|
|
6471
|
-
return
|
|
6473
|
+
return dataWithPE(
|
|
6472
6474
|
formData,
|
|
6473
6475
|
{ status: "error", error: result.error.message },
|
|
6474
6476
|
{ status: 400 }
|
|
@@ -6477,7 +6479,7 @@ async function action$5({ request }) {
|
|
|
6477
6479
|
const form = result.data;
|
|
6478
6480
|
const app = await getAppByName(form.appName);
|
|
6479
6481
|
if (!app) {
|
|
6480
|
-
return
|
|
6482
|
+
return dataWithPE(
|
|
6481
6483
|
formData,
|
|
6482
6484
|
{ status: "error", error: `App ${form.appName} not found` },
|
|
6483
6485
|
{ status: 404 }
|
|
@@ -6489,7 +6491,7 @@ async function action$5({ request }) {
|
|
|
6489
6491
|
} catch (error) {
|
|
6490
6492
|
const message = getErrorMessage(error);
|
|
6491
6493
|
console.error("Error setting playground", message);
|
|
6492
|
-
return
|
|
6494
|
+
return unstable_data$1({ status: "error", error: message }, {
|
|
6493
6495
|
status: 500,
|
|
6494
6496
|
headers: await createToastHeaders({
|
|
6495
6497
|
type: "error",
|
|
@@ -6503,7 +6505,7 @@ async function action$5({ request }) {
|
|
|
6503
6505
|
if (playground && converseApp) {
|
|
6504
6506
|
void getDiffCode(playground, converseApp, { forceFresh: true });
|
|
6505
6507
|
}
|
|
6506
|
-
return
|
|
6508
|
+
return dataWithPE(formData, { status: "success" });
|
|
6507
6509
|
}
|
|
6508
6510
|
function SetPlayground({
|
|
6509
6511
|
appName,
|
|
@@ -6588,14 +6590,14 @@ function PlaygroundChooser({
|
|
|
6588
6590
|
align: "start",
|
|
6589
6591
|
className: "z-20 max-h-[50vh] bg-black text-white lg:max-h-[70vh]",
|
|
6590
6592
|
children: [
|
|
6591
|
-
/* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex h-5 cursor-default items-center justify-center
|
|
6593
|
+
/* @__PURE__ */ jsx(Select.ScrollUpButton, { className: "flex h-5 cursor-default items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "ChevronUp" }) }),
|
|
6592
6594
|
/* @__PURE__ */ jsx(Select.Viewport, { className: "p-3", children: /* @__PURE__ */ jsxs(Select.Group, { children: [
|
|
6593
6595
|
/* @__PURE__ */ jsx(Select.Label, { className: "px-5 pb-3 font-mono uppercase", children: "App" }),
|
|
6594
6596
|
allApps.filter((app) => app.name !== "playground").map((app) => {
|
|
6595
6597
|
return /* @__PURE__ */ jsx(SelectItem$1, { value: app.name, children: app.displayName }, app.name);
|
|
6596
6598
|
})
|
|
6597
6599
|
] }) }),
|
|
6598
|
-
/* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex h-5 cursor-default items-center justify-center
|
|
6600
|
+
/* @__PURE__ */ jsx(Select.ScrollDownButton, { className: "flex h-5 cursor-default items-center justify-center", children: /* @__PURE__ */ jsx(Icon, { name: "ChevronDown" }) })
|
|
6599
6601
|
]
|
|
6600
6602
|
}
|
|
6601
6603
|
) })
|
|
@@ -6943,34 +6945,34 @@ function TouchedFiles({
|
|
|
6943
6945
|
) })
|
|
6944
6946
|
] }) });
|
|
6945
6947
|
}
|
|
6946
|
-
function pageTitle(
|
|
6948
|
+
function pageTitle(data2, workshopTitle) {
|
|
6947
6949
|
var _a;
|
|
6948
|
-
const exerciseNumber = (
|
|
6949
|
-
const stepNumber = (
|
|
6950
|
+
const exerciseNumber = (data2 == null ? void 0 : data2.exerciseStepApp.exerciseNumber.toString().padStart(2, "0")) ?? "00";
|
|
6951
|
+
const stepNumber = (data2 == null ? void 0 : data2.exerciseStepApp.stepNumber.toString().padStart(2, "0")) ?? "00";
|
|
6950
6952
|
const emoji = {
|
|
6951
6953
|
problem: "💪",
|
|
6952
6954
|
solution: "🏁"
|
|
6953
|
-
}[(
|
|
6954
|
-
const title = ((_a =
|
|
6955
|
+
}[(data2 == null ? void 0 : data2.type) ?? "problem"];
|
|
6956
|
+
const title = ((_a = data2 == null ? void 0 : data2[data2.type]) == null ? void 0 : _a.title) ?? "N/A";
|
|
6955
6957
|
return {
|
|
6956
6958
|
emoji,
|
|
6957
6959
|
stepNumber,
|
|
6958
6960
|
title,
|
|
6959
6961
|
exerciseNumber,
|
|
6960
|
-
exerciseTitle: (
|
|
6962
|
+
exerciseTitle: (data2 == null ? void 0 : data2.exerciseTitle) ?? "Unknown exercise",
|
|
6961
6963
|
workshopTitle,
|
|
6962
|
-
type: (
|
|
6964
|
+
type: (data2 == null ? void 0 : data2.type) ?? "problem"
|
|
6963
6965
|
};
|
|
6964
6966
|
}
|
|
6965
6967
|
const meta$3 = ({
|
|
6966
|
-
data,
|
|
6968
|
+
data: data2,
|
|
6967
6969
|
matches,
|
|
6968
6970
|
params
|
|
6969
6971
|
}) => {
|
|
6970
6972
|
var _a;
|
|
6971
6973
|
const rootData = (_a = matches.find((m) => m.id === "root")) == null ? void 0 : _a.data;
|
|
6972
|
-
if (!
|
|
6973
|
-
const { emoji, stepNumber, title, exerciseNumber, exerciseTitle } = pageTitle(
|
|
6974
|
+
if (!data2 || !rootData) return [{ title: "🦉 | Error" }];
|
|
6975
|
+
const { emoji, stepNumber, title, exerciseNumber, exerciseTitle } = pageTitle(data2);
|
|
6974
6976
|
return getSeoMetaTags({
|
|
6975
6977
|
title: `${emoji} | ${stepNumber}. ${title} | ${exerciseNumber}. ${exerciseTitle} | ${rootData.workshopTitle}`,
|
|
6976
6978
|
description: `${params.type} step for exercise ${exerciseNumber}. ${exerciseTitle}`,
|
|
@@ -7048,7 +7050,7 @@ async function loader$l({ request, params }) {
|
|
|
7048
7050
|
const subroute = url.pathname.split(
|
|
7049
7051
|
`/exercise/${params.exerciseNumber}/${params.stepNumber}/${params.type}/`
|
|
7050
7052
|
)[1];
|
|
7051
|
-
return
|
|
7053
|
+
return unstable_data$1(
|
|
7052
7054
|
{
|
|
7053
7055
|
articleId,
|
|
7054
7056
|
type: params.type,
|
|
@@ -7117,11 +7119,11 @@ const headers$7 = ({ loaderHeaders, parentHeaders }) => {
|
|
|
7117
7119
|
};
|
|
7118
7120
|
function ExercisePartRoute$1() {
|
|
7119
7121
|
var _a;
|
|
7120
|
-
const
|
|
7122
|
+
const data2 = useLoaderData();
|
|
7121
7123
|
const inBrowserBrowserRef = useRef(null);
|
|
7122
|
-
const titleBits = pageTitle(
|
|
7124
|
+
const titleBits = pageTitle(data2);
|
|
7123
7125
|
useRevalidationWS({
|
|
7124
|
-
watchPaths: [`${
|
|
7126
|
+
watchPaths: [`${data2.exerciseStepApp.relativePath}/README.mdx`]
|
|
7125
7127
|
});
|
|
7126
7128
|
return /* @__PURE__ */ jsx("div", { className: "flex max-w-full flex-grow flex-col", children: /* @__PURE__ */ jsxs("main", { className: "flex flex-grow flex-col sm:grid sm:h-full sm:min-h-[800px] sm:grid-cols-1 sm:grid-rows-2 md:min-h-[unset] lg:grid-cols-2 lg:grid-rows-1", children: [
|
|
7127
7129
|
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col sm:col-span-1 sm:row-span-1 sm:h-full lg:border-r", children: [
|
|
@@ -7151,29 +7153,29 @@ function ExercisePartRoute$1() {
|
|
|
7151
7153
|
")"
|
|
7152
7154
|
] })
|
|
7153
7155
|
] }),
|
|
7154
|
-
|
|
7156
|
+
data2.problem && ((_a = data2.playground) == null ? void 0 : _a.appName) !== data2.problem.name ? /* @__PURE__ */ jsx("div", { className: "hidden md:block", children: /* @__PURE__ */ jsx(SetAppToPlayground, { appName: data2.problem.name }) }) : null
|
|
7155
7157
|
] }) }),
|
|
7156
7158
|
/* @__PURE__ */ jsxs(
|
|
7157
7159
|
"article",
|
|
7158
7160
|
{
|
|
7159
|
-
id:
|
|
7161
|
+
id: data2.articleId,
|
|
7160
7162
|
className: "shadow-on-scrollbox flex h-full w-full max-w-none flex-1 scroll-pt-6 flex-col justify-between space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",
|
|
7161
7163
|
children: [
|
|
7162
|
-
|
|
7164
|
+
data2.exerciseStepApp.instructionsCode ? /* @__PURE__ */ jsx(StepMdx, { inBrowserBrowserRef }) : /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center text-lg", children: /* @__PURE__ */ jsx("p", { children: "No instructions yet..." }) }),
|
|
7163
7165
|
/* @__PURE__ */ jsxs("div", { className: "mt-auto flex justify-between", children: [
|
|
7164
|
-
|
|
7166
|
+
data2.prevStepLink ? /* @__PURE__ */ jsx(
|
|
7165
7167
|
Link,
|
|
7166
7168
|
{
|
|
7167
|
-
to:
|
|
7169
|
+
to: data2.prevStepLink.to,
|
|
7168
7170
|
"aria-label": "Previous Step",
|
|
7169
7171
|
prefetch: "intent",
|
|
7170
7172
|
children: "← Previous"
|
|
7171
7173
|
}
|
|
7172
7174
|
) : /* @__PURE__ */ jsx("span", {}),
|
|
7173
|
-
|
|
7175
|
+
data2.nextStepLink ? /* @__PURE__ */ jsx(
|
|
7174
7176
|
Link,
|
|
7175
7177
|
{
|
|
7176
|
-
to:
|
|
7178
|
+
to: data2.nextStepLink.to,
|
|
7177
7179
|
"aria-label": "Next Step",
|
|
7178
7180
|
prefetch: "intent",
|
|
7179
7181
|
children: "Next →"
|
|
@@ -7182,42 +7184,42 @@ function ExercisePartRoute$1() {
|
|
|
7182
7184
|
] })
|
|
7183
7185
|
]
|
|
7184
7186
|
},
|
|
7185
|
-
|
|
7187
|
+
data2.articleId
|
|
7186
7188
|
),
|
|
7187
7189
|
/* @__PURE__ */ jsx(
|
|
7188
7190
|
ElementScrollRestoration,
|
|
7189
7191
|
{
|
|
7190
|
-
elementQuery: `#${
|
|
7192
|
+
elementQuery: `#${data2.articleId}`
|
|
7191
7193
|
},
|
|
7192
|
-
`scroll-${
|
|
7194
|
+
`scroll-${data2.articleId}`
|
|
7193
7195
|
),
|
|
7194
|
-
|
|
7196
|
+
data2.type === "solution" ? /* @__PURE__ */ jsx(
|
|
7195
7197
|
ProgressToggle,
|
|
7196
7198
|
{
|
|
7197
7199
|
type: "step",
|
|
7198
|
-
exerciseNumber:
|
|
7199
|
-
stepNumber:
|
|
7200
|
+
exerciseNumber: data2.exerciseStepApp.exerciseNumber,
|
|
7201
|
+
stepNumber: data2.exerciseStepApp.stepNumber,
|
|
7200
7202
|
className: "h-14 border-t px-6"
|
|
7201
7203
|
}
|
|
7202
7204
|
) : null,
|
|
7203
7205
|
/* @__PURE__ */ jsxs("div", { className: "flex h-16 justify-between border-b-4 border-t lg:border-b-0", children: [
|
|
7204
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { className: "h-full", children: /* @__PURE__ */ jsx(TouchedFiles, { diffFilesPromise:
|
|
7206
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("div", { className: "h-full", children: /* @__PURE__ */ jsx(TouchedFiles, { diffFilesPromise: data2.diffFiles }) }) }),
|
|
7205
7207
|
/* @__PURE__ */ jsx(
|
|
7206
7208
|
EditFileOnGitHub,
|
|
7207
7209
|
{
|
|
7208
|
-
appName:
|
|
7209
|
-
relativePath:
|
|
7210
|
+
appName: data2.exerciseStepApp.name,
|
|
7211
|
+
relativePath: data2.exerciseStepApp.relativePath
|
|
7210
7212
|
}
|
|
7211
7213
|
),
|
|
7212
7214
|
/* @__PURE__ */ jsx(
|
|
7213
7215
|
NavChevrons,
|
|
7214
7216
|
{
|
|
7215
|
-
prev:
|
|
7216
|
-
to:
|
|
7217
|
+
prev: data2.prevStepLink ? {
|
|
7218
|
+
to: data2.prevStepLink.to,
|
|
7217
7219
|
"aria-label": "Previous Step"
|
|
7218
7220
|
} : null,
|
|
7219
|
-
next:
|
|
7220
|
-
to:
|
|
7221
|
+
next: data2.nextStepLink ? {
|
|
7222
|
+
to: data2.nextStepLink.to,
|
|
7221
7223
|
"aria-label": "Next Step"
|
|
7222
7224
|
} : null
|
|
7223
7225
|
}
|
|
@@ -7269,10 +7271,10 @@ async function action$4({ request }) {
|
|
|
7269
7271
|
const appRunningResult = await waitOnApp(app);
|
|
7270
7272
|
if ((appRunningResult == null ? void 0 : appRunningResult.status) === "success") {
|
|
7271
7273
|
await new Promise((resolve) => setTimeout(resolve, 200));
|
|
7272
|
-
return
|
|
7274
|
+
return dataWithPE(formData, { status: "app-started" });
|
|
7273
7275
|
} else if (app.dev.type === "script") {
|
|
7274
7276
|
const errorMessage = appRunningResult ? appRunningResult.error : "Unknown error";
|
|
7275
|
-
return
|
|
7277
|
+
return unstable_data$1(
|
|
7276
7278
|
{
|
|
7277
7279
|
status: "app-not-started",
|
|
7278
7280
|
error: errorMessage,
|
|
@@ -7290,7 +7292,7 @@ async function action$4({ request }) {
|
|
|
7290
7292
|
);
|
|
7291
7293
|
}
|
|
7292
7294
|
} else if (result.portNumber) {
|
|
7293
|
-
return
|
|
7295
|
+
return dataWithPE(formData, {
|
|
7294
7296
|
status: "app-not-started",
|
|
7295
7297
|
error: result.status,
|
|
7296
7298
|
port: result.portNumber
|
|
@@ -7305,7 +7307,7 @@ async function action$4({ request }) {
|
|
|
7305
7307
|
async function stopApp() {
|
|
7306
7308
|
invariant(app, "app must be defined");
|
|
7307
7309
|
await closeProcess(app.name);
|
|
7308
|
-
return
|
|
7310
|
+
return dataWithPE(formData, { status: "app-stopped" });
|
|
7309
7311
|
}
|
|
7310
7312
|
switch (intent) {
|
|
7311
7313
|
case "start": {
|
|
@@ -7324,7 +7326,7 @@ async function action$4({ request }) {
|
|
|
7324
7326
|
const port2 = formData.get("port");
|
|
7325
7327
|
invariantResponse(typeof port2 === "string", "port is required");
|
|
7326
7328
|
await stopPort(port2);
|
|
7327
|
-
return
|
|
7329
|
+
return dataWithPE(formData, { status: "port-stopped" });
|
|
7328
7330
|
}
|
|
7329
7331
|
throw new Error(`Unknown intent: ${intent}`);
|
|
7330
7332
|
}
|
|
@@ -7849,23 +7851,29 @@ async function loader$k({ request, params }) {
|
|
|
7849
7851
|
const timings = makeTimings("exercise-step-test");
|
|
7850
7852
|
const exerciseStepApp = await requireExerciseApp(params, { request, timings });
|
|
7851
7853
|
const { isRunning, portIsAvailable } = await getAppRunningState(exerciseStepApp);
|
|
7852
|
-
return
|
|
7853
|
-
|
|
7854
|
-
|
|
7855
|
-
|
|
7856
|
-
|
|
7857
|
-
|
|
7858
|
-
|
|
7859
|
-
|
|
7860
|
-
|
|
7861
|
-
|
|
7862
|
-
|
|
7854
|
+
return unstable_data$1(
|
|
7855
|
+
{
|
|
7856
|
+
appInfo: {
|
|
7857
|
+
isRunning,
|
|
7858
|
+
name: exerciseStepApp.name,
|
|
7859
|
+
title: exerciseStepApp.title,
|
|
7860
|
+
portIsAvailable,
|
|
7861
|
+
type: exerciseStepApp.type,
|
|
7862
|
+
fullPath: exerciseStepApp.fullPath,
|
|
7863
|
+
dev: exerciseStepApp.dev,
|
|
7864
|
+
test: exerciseStepApp.test,
|
|
7865
|
+
stackBlitzUrl: exerciseStepApp.stackBlitzUrl
|
|
7866
|
+
}
|
|
7867
|
+
},
|
|
7868
|
+
{
|
|
7869
|
+
headers: {
|
|
7870
|
+
"Server-Timing": timings.toString()
|
|
7871
|
+
}
|
|
7863
7872
|
}
|
|
7864
|
-
|
|
7873
|
+
);
|
|
7865
7874
|
}
|
|
7866
7875
|
const headers$6 = ({ loaderHeaders, parentHeaders }) => {
|
|
7867
7876
|
const headers2 = {
|
|
7868
|
-
"Cache-Control": loaderHeaders.get("Cache-Control") ?? "",
|
|
7869
7877
|
"Server-Timing": combineServerTimings(loaderHeaders, parentHeaders)
|
|
7870
7878
|
};
|
|
7871
7879
|
return headers2;
|
|
@@ -8761,15 +8769,15 @@ async function loader$j({ request }) {
|
|
|
8761
8769
|
const url = new URL(request.url);
|
|
8762
8770
|
const name = url.searchParams.get("name");
|
|
8763
8771
|
if (!name) {
|
|
8764
|
-
return
|
|
8772
|
+
return unstable_data$1({ error: "Missing name" }, { status: 400 });
|
|
8765
8773
|
}
|
|
8766
8774
|
const app = await getAppByName(name);
|
|
8767
8775
|
if (!app) {
|
|
8768
|
-
return
|
|
8776
|
+
return unstable_data$1({ error: "App not found" }, { status: 404 });
|
|
8769
8777
|
}
|
|
8770
8778
|
const processEntry = getTestProcessEntry(app);
|
|
8771
8779
|
if (!processEntry) {
|
|
8772
|
-
return
|
|
8780
|
+
return unstable_data$1({ error: "App is not running tests" }, { status: 404 });
|
|
8773
8781
|
}
|
|
8774
8782
|
return eventStream(request.signal, function setup(send) {
|
|
8775
8783
|
var _a, _b;
|
|
@@ -8799,17 +8807,17 @@ async function loader$j({ request }) {
|
|
|
8799
8807
|
return () => {
|
|
8800
8808
|
};
|
|
8801
8809
|
}
|
|
8802
|
-
function handleStdOutData(
|
|
8810
|
+
function handleStdOutData(data2) {
|
|
8803
8811
|
sendEvent({
|
|
8804
8812
|
type: "stdout",
|
|
8805
|
-
data:
|
|
8813
|
+
data: data2.toString("utf-8"),
|
|
8806
8814
|
timestamp: Date.now()
|
|
8807
8815
|
});
|
|
8808
8816
|
}
|
|
8809
|
-
function handleStdErrData(
|
|
8817
|
+
function handleStdErrData(data2) {
|
|
8810
8818
|
sendEvent({
|
|
8811
8819
|
type: "stderr",
|
|
8812
|
-
data:
|
|
8820
|
+
data: data2.toString("utf-8"),
|
|
8813
8821
|
timestamp: Date.now()
|
|
8814
8822
|
});
|
|
8815
8823
|
}
|
|
@@ -8840,7 +8848,7 @@ async function action$3({ request }) {
|
|
|
8840
8848
|
request
|
|
8841
8849
|
});
|
|
8842
8850
|
if (!userHasAccess) {
|
|
8843
|
-
return
|
|
8851
|
+
return dataWithPE(
|
|
8844
8852
|
formData,
|
|
8845
8853
|
{
|
|
8846
8854
|
success: false,
|
|
@@ -8860,7 +8868,7 @@ async function action$3({ request }) {
|
|
|
8860
8868
|
name: formData.get("name")
|
|
8861
8869
|
});
|
|
8862
8870
|
if (!result.success) {
|
|
8863
|
-
return
|
|
8871
|
+
return dataWithPE(
|
|
8864
8872
|
formData,
|
|
8865
8873
|
{ success: false, error: result.error.flatten() },
|
|
8866
8874
|
{ status: 400 }
|
|
@@ -8868,7 +8876,7 @@ async function action$3({ request }) {
|
|
|
8868
8876
|
}
|
|
8869
8877
|
const app = await getAppByName(result.data.name);
|
|
8870
8878
|
if (!app) {
|
|
8871
|
-
return
|
|
8879
|
+
return dataWithPE(
|
|
8872
8880
|
formData,
|
|
8873
8881
|
{ success: false, error: "App not found" },
|
|
8874
8882
|
{ status: 404 }
|
|
@@ -8877,18 +8885,18 @@ async function action$3({ request }) {
|
|
|
8877
8885
|
switch (result.data.intent) {
|
|
8878
8886
|
case "run": {
|
|
8879
8887
|
void runAppTests(app);
|
|
8880
|
-
return
|
|
8888
|
+
return dataWithPE(formData, { success: true });
|
|
8881
8889
|
}
|
|
8882
8890
|
case "stop": {
|
|
8883
8891
|
const processEntry = getTestProcessEntry(app);
|
|
8884
8892
|
if (processEntry) {
|
|
8885
8893
|
(_a = processEntry.process) == null ? void 0 : _a.kill();
|
|
8886
8894
|
}
|
|
8887
|
-
return
|
|
8895
|
+
return dataWithPE(formData, { success: true });
|
|
8888
8896
|
}
|
|
8889
8897
|
case "clear": {
|
|
8890
8898
|
clearTestProcessEntry(app);
|
|
8891
|
-
return
|
|
8899
|
+
return dataWithPE(formData, { success: true });
|
|
8892
8900
|
}
|
|
8893
8901
|
}
|
|
8894
8902
|
}
|
|
@@ -9268,7 +9276,7 @@ async function loader$i({ request, params }) {
|
|
|
9268
9276
|
diffCode
|
|
9269
9277
|
};
|
|
9270
9278
|
}
|
|
9271
|
-
return
|
|
9279
|
+
return unstable_data$1(
|
|
9272
9280
|
{
|
|
9273
9281
|
type: params.type,
|
|
9274
9282
|
exerciseStepApp,
|
|
@@ -9343,7 +9351,7 @@ function withParam(searchParams, key, value) {
|
|
|
9343
9351
|
}
|
|
9344
9352
|
function ExercisePartRoute() {
|
|
9345
9353
|
var _a, _b, _c, _d, _e, _f;
|
|
9346
|
-
const
|
|
9354
|
+
const data2 = useLoaderData();
|
|
9347
9355
|
const [searchParams] = useSearchParams();
|
|
9348
9356
|
const preview = searchParams.get("preview");
|
|
9349
9357
|
const inBrowserBrowserRef = useRef(null);
|
|
@@ -9352,12 +9360,12 @@ function ExercisePartRoute() {
|
|
|
9352
9360
|
function shouldHideTab(tab) {
|
|
9353
9361
|
var _a2, _b2, _c2;
|
|
9354
9362
|
if (tab === "tests") {
|
|
9355
|
-
return ENV.EPICSHOP_DEPLOYED || !
|
|
9363
|
+
return ENV.EPICSHOP_DEPLOYED || !data2.playground || data2.playground.test.type === "none";
|
|
9356
9364
|
}
|
|
9357
9365
|
if (tab === "problem" || tab === "solution") {
|
|
9358
|
-
if (((_a2 =
|
|
9366
|
+
if (((_a2 = data2[tab]) == null ? void 0 : _a2.dev.type) === "none") return true;
|
|
9359
9367
|
if (ENV.EPICSHOP_DEPLOYED) {
|
|
9360
|
-
return ((_b2 =
|
|
9368
|
+
return ((_b2 = data2[tab]) == null ? void 0 : _b2.dev.type) !== "browser" && !((_c2 = data2[tab]) == null ? void 0 : _c2.stackBlitzUrl);
|
|
9361
9369
|
}
|
|
9362
9370
|
}
|
|
9363
9371
|
if (tab === "playground" && ENV.EPICSHOP_DEPLOYED) return true;
|
|
@@ -9365,8 +9373,8 @@ function ExercisePartRoute() {
|
|
|
9365
9373
|
}
|
|
9366
9374
|
const activeTab = isValidPreview(preview) ? preview : tabs.find((t) => !shouldHideTab(t));
|
|
9367
9375
|
const altDiffUrl = `/diff?${new URLSearchParams({
|
|
9368
|
-
app1: ((_a =
|
|
9369
|
-
app2: ((_b =
|
|
9376
|
+
app1: ((_a = data2.problem) == null ? void 0 : _a.name) ?? "",
|
|
9377
|
+
app2: ((_b = data2.solution) == null ? void 0 : _b.name) ?? ""
|
|
9370
9378
|
})}`;
|
|
9371
9379
|
function handleDiffTabClick(event) {
|
|
9372
9380
|
if (event.altKey && !event.ctrlKey && !event.shiftKey && !event.metaKey) {
|
|
@@ -9411,11 +9419,11 @@ function ExercisePartRoute() {
|
|
|
9411
9419
|
children: /* @__PURE__ */ jsx(
|
|
9412
9420
|
Playground,
|
|
9413
9421
|
{
|
|
9414
|
-
appInfo:
|
|
9415
|
-
problemAppName: (_c =
|
|
9422
|
+
appInfo: data2.playground,
|
|
9423
|
+
problemAppName: (_c = data2.problem) == null ? void 0 : _c.name,
|
|
9416
9424
|
inBrowserBrowserRef,
|
|
9417
|
-
allApps:
|
|
9418
|
-
isUpToDate: ((_d =
|
|
9425
|
+
allApps: data2.allApps,
|
|
9426
|
+
isUpToDate: ((_d = data2.playground) == null ? void 0 : _d.isUpToDate) ?? false
|
|
9419
9427
|
}
|
|
9420
9428
|
)
|
|
9421
9429
|
}
|
|
@@ -9428,7 +9436,7 @@ function ExercisePartRoute() {
|
|
|
9428
9436
|
children: /* @__PURE__ */ jsx(
|
|
9429
9437
|
Preview,
|
|
9430
9438
|
{
|
|
9431
|
-
appInfo:
|
|
9439
|
+
appInfo: data2.problem,
|
|
9432
9440
|
inBrowserBrowserRef
|
|
9433
9441
|
}
|
|
9434
9442
|
)
|
|
@@ -9442,7 +9450,7 @@ function ExercisePartRoute() {
|
|
|
9442
9450
|
children: /* @__PURE__ */ jsx(
|
|
9443
9451
|
Preview,
|
|
9444
9452
|
{
|
|
9445
|
-
appInfo:
|
|
9453
|
+
appInfo: data2.solution,
|
|
9446
9454
|
inBrowserBrowserRef
|
|
9447
9455
|
}
|
|
9448
9456
|
)
|
|
@@ -9456,10 +9464,10 @@ function ExercisePartRoute() {
|
|
|
9456
9464
|
children: /* @__PURE__ */ jsx(
|
|
9457
9465
|
Tests,
|
|
9458
9466
|
{
|
|
9459
|
-
appInfo:
|
|
9460
|
-
problemAppName: (_e =
|
|
9461
|
-
allApps:
|
|
9462
|
-
isUpToDate: ((_f =
|
|
9467
|
+
appInfo: data2.playground,
|
|
9468
|
+
problemAppName: (_e = data2.problem) == null ? void 0 : _e.name,
|
|
9469
|
+
allApps: data2.allApps,
|
|
9470
|
+
isUpToDate: ((_f = data2.playground) == null ? void 0 : _f.isUpToDate) ?? false
|
|
9463
9471
|
}
|
|
9464
9472
|
)
|
|
9465
9473
|
}
|
|
@@ -9469,7 +9477,7 @@ function ExercisePartRoute() {
|
|
|
9469
9477
|
{
|
|
9470
9478
|
value: "diff",
|
|
9471
9479
|
className: "flex h-full w-full flex-grow items-start justify-center self-start radix-state-inactive:hidden",
|
|
9472
|
-
children: /* @__PURE__ */ jsx(Diff, { diff:
|
|
9480
|
+
children: /* @__PURE__ */ jsx(Diff, { diff: data2.diff, allApps: data2.allApps })
|
|
9473
9481
|
}
|
|
9474
9482
|
),
|
|
9475
9483
|
/* @__PURE__ */ jsx(
|
|
@@ -9505,12 +9513,19 @@ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9505
9513
|
async function loader$h({ request, params }) {
|
|
9506
9514
|
const timings = makeTimings("exercise-step-test");
|
|
9507
9515
|
const exerciseStepApp = await requireExerciseApp(params, { request, timings });
|
|
9508
|
-
return
|
|
9509
|
-
|
|
9510
|
-
|
|
9511
|
-
|
|
9516
|
+
return unstable_data$1(
|
|
9517
|
+
{
|
|
9518
|
+
appInfo: {
|
|
9519
|
+
name: exerciseStepApp == null ? void 0 : exerciseStepApp.name,
|
|
9520
|
+
test: exerciseStepApp == null ? void 0 : exerciseStepApp.test
|
|
9521
|
+
}
|
|
9522
|
+
},
|
|
9523
|
+
{
|
|
9524
|
+
headers: {
|
|
9525
|
+
"Server-Timing": timings.toString()
|
|
9526
|
+
}
|
|
9512
9527
|
}
|
|
9513
|
-
|
|
9528
|
+
);
|
|
9514
9529
|
}
|
|
9515
9530
|
const headers$4 = ({ loaderHeaders, parentHeaders }) => {
|
|
9516
9531
|
const headers2 = {
|
|
@@ -9554,17 +9569,17 @@ const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9554
9569
|
loader: loader$g
|
|
9555
9570
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9556
9571
|
const meta$2 = ({
|
|
9557
|
-
data,
|
|
9572
|
+
data: data2,
|
|
9558
9573
|
matches
|
|
9559
9574
|
}) => {
|
|
9560
9575
|
var _a;
|
|
9561
|
-
const number =
|
|
9576
|
+
const number = data2 == null ? void 0 : data2.exercise.exerciseNumber.toString().padStart(2, "0");
|
|
9562
9577
|
const rootData = (_a = matches.find((m) => m.id === "root")) == null ? void 0 : _a.data;
|
|
9563
|
-
if (!
|
|
9578
|
+
if (!data2 || !rootData) return [{ title: "🦉 | Error" }];
|
|
9564
9579
|
return getSeoMetaTags({
|
|
9565
|
-
title: `🦉 | ${number}. ${
|
|
9566
|
-
description: `Elaboration for ${number}. ${
|
|
9567
|
-
ogTitle: `Finished: ${
|
|
9580
|
+
title: `🦉 | ${number}. ${data2.exercise.title} | ${rootData == null ? void 0 : rootData.workshopTitle}`,
|
|
9581
|
+
description: `Elaboration for ${number}. ${data2.exercise.title}`,
|
|
9582
|
+
ogTitle: `Finished: ${data2.exercise.title}`,
|
|
9568
9583
|
ogDescription: `Elaboration for exercise ${Number(number)}`,
|
|
9569
9584
|
instructor: rootData.instructor,
|
|
9570
9585
|
requestInfo: rootData.requestInfo
|
|
@@ -9597,7 +9612,7 @@ async function loader$f({ request, params }) {
|
|
|
9597
9612
|
const exerciseApps = apps.filter(isExerciseStepApp).filter((app) => app.exerciseNumber === exercise.exerciseNumber);
|
|
9598
9613
|
const prevApp = exerciseApps[exerciseApps.length - 1];
|
|
9599
9614
|
const articleId = `workshop-${slugify(workshopConfig.title)}-${exercise.exerciseNumber}-finished`;
|
|
9600
|
-
return
|
|
9615
|
+
return unstable_data$1(
|
|
9601
9616
|
{
|
|
9602
9617
|
articleId,
|
|
9603
9618
|
workshopTitle: workshopConfig.title,
|
|
@@ -9639,15 +9654,15 @@ const headers$3 = ({ loaderHeaders, parentHeaders }) => {
|
|
|
9639
9654
|
};
|
|
9640
9655
|
const mdxComponents$2 = { h1: () => null };
|
|
9641
9656
|
function ExerciseFinished$1() {
|
|
9642
|
-
const
|
|
9643
|
-
const exerciseNumber =
|
|
9657
|
+
const data2 = useLoaderData();
|
|
9658
|
+
const exerciseNumber = data2.exercise.exerciseNumber.toString().padStart(2, "0");
|
|
9644
9659
|
useRevalidationWS({
|
|
9645
9660
|
watchPaths: [`./exercises/${exerciseNumber}/FINISHED.mdx`]
|
|
9646
9661
|
});
|
|
9647
9662
|
return /* @__PURE__ */ jsx("div", { className: "flex max-w-full flex-grow flex-col", children: /* @__PURE__ */ jsxs("main", { className: "flex flex-grow flex-col sm:grid sm:h-full sm:min-h-[800px] sm:grid-cols-1 sm:grid-rows-2 md:min-h-[unset] lg:grid-cols-2 lg:grid-rows-1", children: [
|
|
9648
9663
|
/* @__PURE__ */ jsxs("div", { className: "relative flex flex-col sm:col-span-1 sm:row-span-1 sm:h-full lg:border-r", children: [
|
|
9649
9664
|
/* @__PURE__ */ jsx("h1", { className: "h-14 border-b pl-10 pr-5 text-sm font-medium leading-tight", children: /* @__PURE__ */ jsx("div", { className: "flex h-14 flex-wrap items-center justify-between gap-x-2 py-2", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-start gap-x-2", children: [
|
|
9650
|
-
/* @__PURE__ */ jsx(Link, { to: `/${exerciseNumber}`, className: "hover:underline", children: `${exerciseNumber}. ${
|
|
9665
|
+
/* @__PURE__ */ jsx(Link, { to: `/${exerciseNumber}`, className: "hover:underline", children: `${exerciseNumber}. ${data2.exercise.title}` }),
|
|
9651
9666
|
/* @__PURE__ */ jsx("span", { children: "/" }),
|
|
9652
9667
|
/* @__PURE__ */ jsx("span", { children: "Elaboration" })
|
|
9653
9668
|
] }) }) }),
|
|
@@ -9655,15 +9670,15 @@ function ExerciseFinished$1() {
|
|
|
9655
9670
|
"article",
|
|
9656
9671
|
{
|
|
9657
9672
|
className: "shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",
|
|
9658
|
-
id:
|
|
9659
|
-
children:
|
|
9673
|
+
id: data2.articleId,
|
|
9674
|
+
children: data2.exercise.finishedCode ? /* @__PURE__ */ jsx(
|
|
9660
9675
|
EpicVideoInfoProvider,
|
|
9661
9676
|
{
|
|
9662
|
-
epicVideoInfosPromise:
|
|
9677
|
+
epicVideoInfosPromise: data2.epicVideoInfosPromise,
|
|
9663
9678
|
children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert sm:prose-lg", children: /* @__PURE__ */ jsx(
|
|
9664
9679
|
Mdx,
|
|
9665
9680
|
{
|
|
9666
|
-
code:
|
|
9681
|
+
code: data2.exercise.finishedCode,
|
|
9667
9682
|
components: mdxComponents$2
|
|
9668
9683
|
}
|
|
9669
9684
|
) })
|
|
@@ -9674,12 +9689,12 @@ function ExerciseFinished$1() {
|
|
|
9674
9689
|
)
|
|
9675
9690
|
}
|
|
9676
9691
|
),
|
|
9677
|
-
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${
|
|
9692
|
+
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${data2.articleId}` }),
|
|
9678
9693
|
/* @__PURE__ */ jsx(
|
|
9679
9694
|
ProgressToggle,
|
|
9680
9695
|
{
|
|
9681
9696
|
type: "finished",
|
|
9682
|
-
exerciseNumber:
|
|
9697
|
+
exerciseNumber: data2.exercise.exerciseNumber,
|
|
9683
9698
|
className: "h-14 border-t px-6"
|
|
9684
9699
|
}
|
|
9685
9700
|
),
|
|
@@ -9688,18 +9703,18 @@ function ExerciseFinished$1() {
|
|
|
9688
9703
|
/* @__PURE__ */ jsx(
|
|
9689
9704
|
EditFileOnGitHub,
|
|
9690
9705
|
{
|
|
9691
|
-
file:
|
|
9692
|
-
relativePath:
|
|
9706
|
+
file: data2.exerciseFinished.file,
|
|
9707
|
+
relativePath: data2.exerciseFinished.relativePath
|
|
9693
9708
|
}
|
|
9694
9709
|
),
|
|
9695
|
-
/* @__PURE__ */ jsx(NavChevrons, { prev:
|
|
9710
|
+
/* @__PURE__ */ jsx(NavChevrons, { prev: data2.prevStepLink, next: data2.nextStepLink })
|
|
9696
9711
|
] })
|
|
9697
9712
|
] }),
|
|
9698
9713
|
/* @__PURE__ */ jsx(
|
|
9699
9714
|
Survey$1,
|
|
9700
9715
|
{
|
|
9701
|
-
exerciseFormEmbedUrl:
|
|
9702
|
-
exerciseTitle:
|
|
9716
|
+
exerciseFormEmbedUrl: data2.exerciseFormEmbedUrl,
|
|
9717
|
+
exerciseTitle: data2.exercise.title
|
|
9703
9718
|
}
|
|
9704
9719
|
)
|
|
9705
9720
|
] }) });
|
|
@@ -9771,7 +9786,7 @@ async function loader$e({ request }) {
|
|
|
9771
9786
|
"{workshopTitle}",
|
|
9772
9787
|
encodeURIComponent(workshopTitle)
|
|
9773
9788
|
);
|
|
9774
|
-
return
|
|
9789
|
+
return unstable_data$1(
|
|
9775
9790
|
{
|
|
9776
9791
|
articleId: `workshop-${slugify(workshopTitle)}-finished`,
|
|
9777
9792
|
workshopTitle,
|
|
@@ -9805,12 +9820,12 @@ const headers$2 = ({ loaderHeaders, parentHeaders }) => {
|
|
|
9805
9820
|
};
|
|
9806
9821
|
const mdxComponents$1 = { h1: () => null };
|
|
9807
9822
|
function ExerciseFinished() {
|
|
9808
|
-
const
|
|
9823
|
+
const data2 = useLoaderData();
|
|
9809
9824
|
useRevalidationWS({ watchPaths: ["./exercises/FINISHED.mdx"] });
|
|
9810
9825
|
return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-grow flex-col", children: /* @__PURE__ */ jsxs("main", { className: "grid h-full flex-grow grid-cols-1 grid-rows-2 lg:grid-cols-2 lg:grid-rows-1", children: [
|
|
9811
9826
|
/* @__PURE__ */ jsxs("div", { className: "relative col-span-1 row-span-1 flex h-full flex-col lg:border-r", children: [
|
|
9812
9827
|
/* @__PURE__ */ jsx("h1", { className: "h-14 border-b pl-10 pr-5 text-sm font-medium uppercase leading-none", children: /* @__PURE__ */ jsx("div", { className: "flex h-14 flex-wrap items-center justify-between gap-x-2 py-2", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-start gap-x-2", children: [
|
|
9813
|
-
/* @__PURE__ */ jsx(Link, { to: "/", className: "hover:underline", children:
|
|
9828
|
+
/* @__PURE__ */ jsx(Link, { to: "/", className: "hover:underline", children: data2.workshopTitle }),
|
|
9814
9829
|
/* @__PURE__ */ jsx("span", { children: "/" }),
|
|
9815
9830
|
/* @__PURE__ */ jsx("span", { children: "Elaboration" })
|
|
9816
9831
|
] }) }) }),
|
|
@@ -9818,12 +9833,12 @@ function ExerciseFinished() {
|
|
|
9818
9833
|
"article",
|
|
9819
9834
|
{
|
|
9820
9835
|
className: "shadow-on-scrollbox h-full w-full max-w-none flex-1 scroll-pt-6 space-y-6 overflow-y-auto p-2 scrollbar-thin scrollbar-thumb-scrollbar sm:p-10 sm:pt-8",
|
|
9821
|
-
id:
|
|
9822
|
-
children:
|
|
9836
|
+
id: data2.articleId,
|
|
9837
|
+
children: data2.finishedCode ? /* @__PURE__ */ jsx(
|
|
9823
9838
|
EpicVideoInfoProvider,
|
|
9824
9839
|
{
|
|
9825
|
-
epicVideoInfosPromise:
|
|
9826
|
-
children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert sm:prose-lg", children: /* @__PURE__ */ jsx(Mdx, { code:
|
|
9840
|
+
epicVideoInfosPromise: data2.epicVideoInfosPromise,
|
|
9841
|
+
children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert sm:prose-lg", children: /* @__PURE__ */ jsx(Mdx, { code: data2.finishedCode, components: mdxComponents$1 }) })
|
|
9827
9842
|
}
|
|
9828
9843
|
) : (
|
|
9829
9844
|
// TODO: render a random dad joke...
|
|
@@ -9831,7 +9846,7 @@ function ExerciseFinished() {
|
|
|
9831
9846
|
)
|
|
9832
9847
|
}
|
|
9833
9848
|
),
|
|
9834
|
-
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${
|
|
9849
|
+
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${data2.articleId}` }),
|
|
9835
9850
|
/* @__PURE__ */ jsx(
|
|
9836
9851
|
ProgressToggle,
|
|
9837
9852
|
{
|
|
@@ -9841,21 +9856,21 @@ function ExerciseFinished() {
|
|
|
9841
9856
|
),
|
|
9842
9857
|
/* @__PURE__ */ jsxs("div", { className: "flex h-16 justify-between border-b-4 border-t lg:border-b-0", children: [
|
|
9843
9858
|
/* @__PURE__ */ jsx("div", {}),
|
|
9844
|
-
|
|
9859
|
+
data2.workshopFinished.status === "success" ? /* @__PURE__ */ jsx(
|
|
9845
9860
|
EditFileOnGitHub,
|
|
9846
9861
|
{
|
|
9847
|
-
file:
|
|
9848
|
-
relativePath:
|
|
9862
|
+
file: data2.workshopFinished.file,
|
|
9863
|
+
relativePath: data2.workshopFinished.relativePath
|
|
9849
9864
|
}
|
|
9850
9865
|
) : null,
|
|
9851
|
-
/* @__PURE__ */ jsx(NavChevrons, { prev:
|
|
9866
|
+
/* @__PURE__ */ jsx(NavChevrons, { prev: data2.prevStepLink, next: { to: "/" } })
|
|
9852
9867
|
] })
|
|
9853
9868
|
] }),
|
|
9854
9869
|
/* @__PURE__ */ jsx(
|
|
9855
9870
|
Survey,
|
|
9856
9871
|
{
|
|
9857
|
-
workshopTitle:
|
|
9858
|
-
workshopFormEmbedUrl:
|
|
9872
|
+
workshopTitle: data2.workshopTitle,
|
|
9873
|
+
workshopFormEmbedUrl: data2.workshopFormEmbedUrl
|
|
9859
9874
|
}
|
|
9860
9875
|
)
|
|
9861
9876
|
] }) });
|
|
@@ -9909,7 +9924,7 @@ async function loader$d({ request }) {
|
|
|
9909
9924
|
desc: "compileMdx in index"
|
|
9910
9925
|
})
|
|
9911
9926
|
]);
|
|
9912
|
-
return
|
|
9927
|
+
return unstable_data$1(
|
|
9913
9928
|
{
|
|
9914
9929
|
articleId: `workshop-${slugify(title)}-instructions`,
|
|
9915
9930
|
title: workshopReadme.compiled.status === "success" ? workshopReadme.compiled.title : title,
|
|
@@ -9959,43 +9974,43 @@ function ExerciseListItem({
|
|
|
9959
9974
|
}
|
|
9960
9975
|
const mdxComponents = { h1: () => null };
|
|
9961
9976
|
function Index() {
|
|
9962
|
-
const
|
|
9977
|
+
const data2 = useLoaderData();
|
|
9963
9978
|
const exerciseLinks = /* @__PURE__ */ jsxs("ul", { className: "flex flex-col divide-y divide-border dark:divide-border/50", children: [
|
|
9964
9979
|
/* @__PURE__ */ jsx("strong", { className: "px-10 pb-3 font-mono text-xs uppercase", children: "Exercises" }),
|
|
9965
|
-
|
|
9980
|
+
data2.exercises.map((exercise) => /* @__PURE__ */ jsx(ExerciseListItem, { exercise }, exercise.exerciseNumber))
|
|
9966
9981
|
] });
|
|
9967
9982
|
return /* @__PURE__ */ jsxs("main", { className: "relative flex h-full w-full max-w-5xl flex-col justify-between border-r md:w-3/4 xl:w-2/3", children: [
|
|
9968
9983
|
/* @__PURE__ */ jsxs(
|
|
9969
9984
|
"article",
|
|
9970
9985
|
{
|
|
9971
|
-
id:
|
|
9986
|
+
id: data2.articleId,
|
|
9972
9987
|
className: "shadow-on-scrollbox flex w-full flex-1 flex-col gap-12 overflow-y-scroll px-3 py-4 pt-6 scrollbar-thin scrollbar-thumb-scrollbar md:px-10 md:py-12 md:pt-16",
|
|
9973
9988
|
children: [
|
|
9974
|
-
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h1", { className: "px-10 text-[clamp(3rem,6vw,7.5rem)] font-extrabold leading-none", children:
|
|
9989
|
+
/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("h1", { className: "px-10 text-[clamp(3rem,6vw,7.5rem)] font-extrabold leading-none", children: data2.title }) }),
|
|
9975
9990
|
/* @__PURE__ */ jsxs("div", { className: "w-full max-w-none scroll-pt-6 border-t px-3 pt-3 md:px-10 md:pt-8", children: [
|
|
9976
9991
|
/* @__PURE__ */ jsx("h2", { className: "pb-5 font-mono text-xs font-semibold uppercase", children: "Intro" }),
|
|
9977
|
-
|
|
9992
|
+
data2.workshopReadme.compiled.status === "success" && data2.workshopReadme.compiled.code ? /* @__PURE__ */ jsx(
|
|
9978
9993
|
EpicVideoInfoProvider,
|
|
9979
9994
|
{
|
|
9980
|
-
epicVideoInfosPromise:
|
|
9995
|
+
epicVideoInfosPromise: data2.epicVideoInfosPromise,
|
|
9981
9996
|
children: /* @__PURE__ */ jsx("div", { className: "prose dark:prose-invert sm:prose-lg", children: /* @__PURE__ */ jsx(
|
|
9982
9997
|
Mdx,
|
|
9983
9998
|
{
|
|
9984
|
-
code:
|
|
9999
|
+
code: data2.workshopReadme.compiled.code,
|
|
9985
10000
|
components: mdxComponents
|
|
9986
10001
|
}
|
|
9987
10002
|
) })
|
|
9988
10003
|
}
|
|
9989
|
-
) :
|
|
10004
|
+
) : data2.workshopReadme.compiled.status === "error" ? /* @__PURE__ */ jsxs("div", { className: "text-red-500", children: [
|
|
9990
10005
|
"There was an error:",
|
|
9991
|
-
/* @__PURE__ */ jsx("pre", { children:
|
|
10006
|
+
/* @__PURE__ */ jsx("pre", { children: data2.workshopReadme.compiled.error })
|
|
9992
10007
|
] }) : "No instructions yet..."
|
|
9993
10008
|
] }),
|
|
9994
|
-
/* @__PURE__ */ jsx("div", { className: "pb-5 pt-10", children:
|
|
10009
|
+
/* @__PURE__ */ jsx("div", { className: "pb-5 pt-10", children: data2.workshopReadme.compiled.status === "success" && data2.workshopReadme.compiled.code && data2.workshopReadme.compiled.code.length > 500 ? exerciseLinks : null })
|
|
9995
10010
|
]
|
|
9996
10011
|
}
|
|
9997
10012
|
),
|
|
9998
|
-
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${
|
|
10013
|
+
/* @__PURE__ */ jsx(ElementScrollRestoration, { elementQuery: `#${data2.articleId}` }),
|
|
9999
10014
|
/* @__PURE__ */ jsx(
|
|
10000
10015
|
ProgressToggle,
|
|
10001
10016
|
{
|
|
@@ -10006,8 +10021,8 @@ function Index() {
|
|
|
10006
10021
|
/* @__PURE__ */ jsx("div", { className: "flex h-16 justify-center border-t", children: /* @__PURE__ */ jsx(
|
|
10007
10022
|
EditFileOnGitHub,
|
|
10008
10023
|
{
|
|
10009
|
-
file:
|
|
10010
|
-
relativePath:
|
|
10024
|
+
file: data2.workshopReadme.file,
|
|
10025
|
+
relativePath: data2.workshopReadme.relativePath
|
|
10011
10026
|
}
|
|
10012
10027
|
) })
|
|
10013
10028
|
] });
|
|
@@ -10131,12 +10146,12 @@ async function loader$b() {
|
|
|
10131
10146
|
ensureUndeployed();
|
|
10132
10147
|
const isAuthenticated = Boolean(await getAuthInfo());
|
|
10133
10148
|
if (isAuthenticated) throw redirect$1("/account");
|
|
10134
|
-
return
|
|
10149
|
+
return {};
|
|
10135
10150
|
}
|
|
10136
10151
|
async function action$2() {
|
|
10137
10152
|
ensureUndeployed();
|
|
10138
10153
|
void registerDevice();
|
|
10139
|
-
return
|
|
10154
|
+
return { status: "pending" };
|
|
10140
10155
|
}
|
|
10141
10156
|
function Login() {
|
|
10142
10157
|
var _a;
|
|
@@ -10365,7 +10380,7 @@ async function loader$a({ request }) {
|
|
|
10365
10380
|
] of getProcesses().testProcesses.entries()) {
|
|
10366
10381
|
testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode };
|
|
10367
10382
|
}
|
|
10368
|
-
return
|
|
10383
|
+
return unstable_data$1(
|
|
10369
10384
|
{
|
|
10370
10385
|
apps,
|
|
10371
10386
|
processes,
|
|
@@ -10386,19 +10401,19 @@ async function action$1({ request }) {
|
|
|
10386
10401
|
switch (intent) {
|
|
10387
10402
|
case "clear-data": {
|
|
10388
10403
|
await clearData();
|
|
10389
|
-
return
|
|
10404
|
+
return { success: true };
|
|
10390
10405
|
}
|
|
10391
10406
|
case "clear-caches": {
|
|
10392
10407
|
await clearCaches();
|
|
10393
|
-
return
|
|
10408
|
+
return { success: true };
|
|
10394
10409
|
}
|
|
10395
10410
|
case "inspect": {
|
|
10396
10411
|
await startInspector();
|
|
10397
|
-
return
|
|
10412
|
+
return { success: true };
|
|
10398
10413
|
}
|
|
10399
10414
|
case "stop-inspect": {
|
|
10400
10415
|
await stopInspector();
|
|
10401
|
-
return
|
|
10416
|
+
return { success: true };
|
|
10402
10417
|
}
|
|
10403
10418
|
default: {
|
|
10404
10419
|
throw new Error(`Unknown intent: ${intent}`);
|
|
@@ -10426,7 +10441,7 @@ function linkProgress(progress) {
|
|
|
10426
10441
|
}
|
|
10427
10442
|
function AdminLayout() {
|
|
10428
10443
|
var _a, _b;
|
|
10429
|
-
const
|
|
10444
|
+
const data2 = useLoaderData();
|
|
10430
10445
|
const navigation = useNavigation();
|
|
10431
10446
|
const epicProgress = useEpicProgress();
|
|
10432
10447
|
const isStartingInspector = ((_a = navigation.formData) == null ? void 0 : _a.get("intent")) === "inspect";
|
|
@@ -10478,19 +10493,19 @@ function AdminLayout() {
|
|
|
10478
10493
|
/* @__PURE__ */ jsxs("ul", { className: "max-h-48 overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: [
|
|
10479
10494
|
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Form, { method: "POST", children: /* @__PURE__ */ jsx("button", { name: "intent", value: "clear-caches", children: "Clear local caches" }) }) }),
|
|
10480
10495
|
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Form, { method: "POST", children: /* @__PURE__ */ jsx("button", { name: "intent", value: "clear-data", children: "Clear all local data (including auth data)" }) }) }),
|
|
10481
|
-
/* @__PURE__ */ jsx("li", { children:
|
|
10496
|
+
/* @__PURE__ */ jsx("li", { children: data2.inspectorRunning ? /* @__PURE__ */ jsx(Form, { method: "POST", children: /* @__PURE__ */ jsx("button", { name: "intent", value: "stop-inspect", children: isStartingInspector ? "Stopping inspector..." : "Stop inspector" }) }) : /* @__PURE__ */ jsx(Form, { method: "POST", children: /* @__PURE__ */ jsx("button", { name: "intent", value: "inspect", children: isStoppingInspector ? "Starting inspector..." : "Start inspector" }) }) })
|
|
10482
10497
|
] })
|
|
10483
10498
|
] }),
|
|
10484
10499
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
10485
10500
|
/* @__PURE__ */ jsx("h2", { className: "text-lg font-bold", children: "Apps" }),
|
|
10486
|
-
/* @__PURE__ */ jsx("ul", { className: "max-h-48 list-none overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children:
|
|
10487
|
-
|
|
10501
|
+
/* @__PURE__ */ jsx("ul", { className: "max-h-48 list-none overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: data2.apps.map((app) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 py-1", children: [
|
|
10502
|
+
data2.processes[app.name] ? /* @__PURE__ */ jsx(Pinger, { status: "running" }) : /* @__PURE__ */ jsx(Pinger, { status: "stopped" }),
|
|
10488
10503
|
app.name
|
|
10489
10504
|
] }, app.name)) })
|
|
10490
10505
|
] }),
|
|
10491
10506
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
10492
10507
|
/* @__PURE__ */ jsx("h2", { className: "text-lg font-bold", children: "Processes" }),
|
|
10493
|
-
/* @__PURE__ */ jsx("ul", { className: "overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: Object.entries(
|
|
10508
|
+
/* @__PURE__ */ jsx("ul", { className: "overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: Object.entries(data2.processes).map(([key, process2]) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("span", { children: [
|
|
10494
10509
|
key,
|
|
10495
10510
|
" - Port: ",
|
|
10496
10511
|
process2.port,
|
|
@@ -10503,7 +10518,7 @@ function AdminLayout() {
|
|
|
10503
10518
|
] }),
|
|
10504
10519
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
10505
10520
|
/* @__PURE__ */ jsx("h2", { className: "text-lg font-bold", children: "Test Processes" }),
|
|
10506
|
-
/* @__PURE__ */ jsx("ul", { className: "overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: Object.entries(
|
|
10521
|
+
/* @__PURE__ */ jsx("ul", { className: "overflow-y-scroll border-2 p-8 scrollbar-thin scrollbar-thumb-scrollbar", children: Object.entries(data2.testProcesses).map(([key, process2]) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs("span", { children: [
|
|
10507
10522
|
key,
|
|
10508
10523
|
" - PID ",
|
|
10509
10524
|
process2.pid,
|
|
@@ -10560,7 +10575,7 @@ const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
10560
10575
|
async function loader$9() {
|
|
10561
10576
|
ensureUndeployed();
|
|
10562
10577
|
const apps = await getApps();
|
|
10563
|
-
return json
|
|
10578
|
+
return Response.json({ apps });
|
|
10564
10579
|
}
|
|
10565
10580
|
const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10566
10581
|
__proto__: null,
|
|
@@ -10569,7 +10584,7 @@ const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
10569
10584
|
async function loader$8() {
|
|
10570
10585
|
ensureUndeployed();
|
|
10571
10586
|
const entries = await getAllFileCacheEntries();
|
|
10572
|
-
return json
|
|
10587
|
+
return Response.json({ entries });
|
|
10573
10588
|
}
|
|
10574
10589
|
const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10575
10590
|
__proto__: null,
|
|
@@ -10578,7 +10593,7 @@ const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
10578
10593
|
async function loader$7({ request }) {
|
|
10579
10594
|
const timings = makeTimings("appsLoader");
|
|
10580
10595
|
const apps = await getApps({ request, timings });
|
|
10581
|
-
return
|
|
10596
|
+
return unstable_data$1(
|
|
10582
10597
|
{ apps },
|
|
10583
10598
|
{ headers: { "Server-Timing": getServerTimeHeader(timings) } }
|
|
10584
10599
|
);
|
|
@@ -10642,12 +10657,12 @@ async function loader$6({ request }) {
|
|
|
10642
10657
|
const nextSearchParams = new URLSearchParams(reqUrl.searchParams);
|
|
10643
10658
|
nextSearchParams.set("app1", nextApp1 ?? "");
|
|
10644
10659
|
nextSearchParams.set("app2", nextApp2 ?? "");
|
|
10645
|
-
return
|
|
10660
|
+
return {
|
|
10646
10661
|
allApps,
|
|
10647
10662
|
diff,
|
|
10648
10663
|
prevLink: prevApp1 && prevApp2 ? { to: `/diff?${prevSearchParams}`, "aria-label": "Previous App" } : { to: "/diff" },
|
|
10649
10664
|
nextLink: nextApp1 && nextApp2 ? { to: `/diff?${nextSearchParams}`, "aria-label": "Next App" } : { to: "/diff" }
|
|
10650
|
-
}
|
|
10665
|
+
};
|
|
10651
10666
|
}
|
|
10652
10667
|
function DiffViewer() {
|
|
10653
10668
|
const data = useLoaderData();
|
|
@@ -10680,7 +10695,7 @@ const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
10680
10695
|
async function loader$5({ request }) {
|
|
10681
10696
|
const timings = makeTimings("appsLoader");
|
|
10682
10697
|
const exercises = await getExercises({ request, timings });
|
|
10683
|
-
return
|
|
10698
|
+
return unstable_data$1(
|
|
10684
10699
|
{ exercises },
|
|
10685
10700
|
{ headers: { "Server-Timing": getServerTimeHeader(timings) } }
|
|
10686
10701
|
);
|
|
@@ -11027,7 +11042,7 @@ async function loader$3({ request }) {
|
|
|
11027
11042
|
const timings = makeTimings("onboarding");
|
|
11028
11043
|
const { onboardingVideo } = getWorkshopConfig();
|
|
11029
11044
|
const videoInfos = getEpicVideoInfos([onboardingVideo], { request, timings });
|
|
11030
|
-
return
|
|
11045
|
+
return unstable_data$1(
|
|
11031
11046
|
{ onboardingVideo, videoInfos },
|
|
11032
11047
|
{ headers: { "Server-Timing": timings.toString() } }
|
|
11033
11048
|
);
|
|
@@ -11039,9 +11054,9 @@ const headers = ({ loaderHeaders }) => {
|
|
|
11039
11054
|
return headers2;
|
|
11040
11055
|
};
|
|
11041
11056
|
async function action({ request }) {
|
|
11042
|
-
const
|
|
11057
|
+
const data2 = await request.formData();
|
|
11043
11058
|
const authInfo = await getAuthInfo();
|
|
11044
|
-
const intent =
|
|
11059
|
+
const intent = data2.get("intent");
|
|
11045
11060
|
invariantResponse(intent === "complete", "Invalid intent");
|
|
11046
11061
|
const { onboardingVideo } = getWorkshopConfig();
|
|
11047
11062
|
await markOnboardingVideoWatched(onboardingVideo);
|
|
@@ -11049,7 +11064,7 @@ async function action({ request }) {
|
|
|
11049
11064
|
else throw redirect$1("/login");
|
|
11050
11065
|
}
|
|
11051
11066
|
function Onboarding() {
|
|
11052
|
-
const
|
|
11067
|
+
const data2 = useLoaderData();
|
|
11053
11068
|
return /* @__PURE__ */ jsxs("main", { className: "flex h-full w-full flex-col items-center justify-between gap-4", children: [
|
|
11054
11069
|
/* @__PURE__ */ jsxs("div", { className: "container flex h-full w-full max-w-5xl flex-1 flex-col items-center gap-4 overflow-y-scroll py-12 scrollbar-thin scrollbar-thumb-scrollbar", children: [
|
|
11055
11070
|
/* @__PURE__ */ jsx("h1", { className: "text-5xl", children: "Onboarding" }),
|
|
@@ -11059,7 +11074,7 @@ function Onboarding() {
|
|
|
11059
11074
|
/* @__PURE__ */ jsx("strong", { children: "you must watch the tour video" }),
|
|
11060
11075
|
"! You're going to be spending a lot of time in here, so it's important you understand how to work effectively in this workshop"
|
|
11061
11076
|
] }),
|
|
11062
|
-
/* @__PURE__ */ jsx("div", { className: "w-[780px] max-w-full", children: /* @__PURE__ */ jsx(EpicVideoInfoProvider, { epicVideoInfosPromise:
|
|
11077
|
+
/* @__PURE__ */ jsx("div", { className: "w-[780px] max-w-full", children: /* @__PURE__ */ jsx(EpicVideoInfoProvider, { epicVideoInfosPromise: data2.videoInfos, children: /* @__PURE__ */ jsx(DeferredEpicVideo, { url: data2.onboardingVideo }) }) })
|
|
11063
11078
|
] }),
|
|
11064
11079
|
/* @__PURE__ */ jsx(Form, { method: "post", className: "pb-4", children: /* @__PURE__ */ jsx(Button, { name: "intent", value: "complete", varient: "primary", children: "I've watched it. Let's go!" }) })
|
|
11065
11080
|
] });
|
|
@@ -11088,7 +11103,7 @@ async function loader$2() {
|
|
|
11088
11103
|
] of getProcesses().testProcesses.entries()) {
|
|
11089
11104
|
testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode, output };
|
|
11090
11105
|
}
|
|
11091
|
-
return json
|
|
11106
|
+
return Response.json({ processes, testProcesses });
|
|
11092
11107
|
}
|
|
11093
11108
|
const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
11094
11109
|
__proto__: null,
|
|
@@ -11116,11 +11131,11 @@ const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
11116
11131
|
__proto__: null,
|
|
11117
11132
|
loader
|
|
11118
11133
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
11119
|
-
const serverManifest = { "entry": { "module": "/assets/entry.client-CW5CUf_W.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-Cl86OUog.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/error-boundary-BcGxKpte.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-YtpQLUzj.js", "/assets/index-BvihEwfB.js", "/assets/presence-Dd98AJ_5.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-ZHCWB__B.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/error-boundary-BcGxKpte.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-frPHZWgR.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/product-mjsTrqXs.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/index-BjNhezSK.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js", "/assets/progress-Co-59mG2.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-DDuV9rZX.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/button-CMkJ8p0a.js", "/assets/tooltip-6-WS-Xux.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-DYeU0QX6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/user-Boua6jiU.js", "/assets/discord-C9bVfiZ6.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-Cfbi6StB.js", "imports": ["/assets/index-DF_XBInP.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-BFTlBdr4.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-_687iGFh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-BriOqd2R.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js", "/assets/set-playground-pMKmtPtz.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-wbMCZEiv.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/preview-DZcdG4kw.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-C2yr7Uiu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/button-CMkJ8p0a.js", "/assets/diff-B6thd_Sf.js", "/assets/error-boundary-BcGxKpte.js", "/assets/discord-C9bVfiZ6.js", "/assets/index-YtpQLUzj.js", "/assets/tests-BeAEgPAw.js", "/assets/preview-DZcdG4kw.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-B6zIK2V6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/epic-video-bs7WmhbC.js", "/assets/accordion-DuE9VejZ.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/tests-BeAEgPAw.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-BEfn-nJi.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-C2dgX1d-.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Co-59mG2.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-CuV1bRbu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-kjV7hrVt.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/use-event-source-CCGBLG92.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/product-mjsTrqXs.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-B0E_F4Zh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-BLJr2x2F.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/pe-CvPIToj6.js", "/assets/tooltip-6-WS-Xux.js", "/assets/progress-Co-59mG2.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-BEk79KPK.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/diff-B6thd_Sf.js", "/assets/nav-chevrons-DYiI8EMU.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-B4Z_yevk.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/button-CMkJ8p0a.js", "/assets/epic-video-bs7WmhbC.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] } }, "url": "/assets/manifest-b22910a7.js", "version": "b22910a7" };
|
|
11134
|
+
const serverManifest = { "entry": { "module": "/assets/entry.client-BTYTUpFV.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/components-9EGYHTc_.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-DojjHZlY.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/components-9EGYHTc_.js", "/assets/misc-BJtHv_Jh.js", "/assets/pe-ChIwTk8v.js", "/assets/error-boundary-1-dmC941.js", "/assets/progress-bar-Cj5R4Zk7.js", "/assets/index-DRH72MzK.js", "/assets/tooltip-BgynKV2c.js", "/assets/index-_J-F_Dnc.js", "/assets/presence-CdyMdOKk.js", "/assets/seo-pBpFCWsy.js", "/assets/request-info-DCIQLE6H.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-CWSCXcBv.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/error-boundary-1-dmC941.js", "/assets/misc-BJtHv_Jh.js", "/assets/components-9EGYHTc_.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-T2hZtl0D.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/misc-BJtHv_Jh.js", "/assets/pe-ChIwTk8v.js", "/assets/product-C1ynnrN_.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/tooltip-BgynKV2c.js", "/assets/index-BuoaxPEj.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/presence-CdyMdOKk.js", "/assets/progress-DAB3nDa2.js", "/assets/index-_J-F_Dnc.js", "/assets/components-9EGYHTc_.js", "/assets/request-info-DCIQLE6H.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-CPFwPYf1.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/button-DQ001ob0.js", "/assets/misc-BJtHv_Jh.js", "/assets/tooltip-BgynKV2c.js", "/assets/user-BBryXlM_.js", "/assets/presence-CdyMdOKk.js", "/assets/components-9EGYHTc_.js", "/assets/request-info-DCIQLE6H.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-DoeazikD.js", "imports": ["/assets/discord-CHsbqaqM.js", "/assets/index-BFGhCX_U.js", "/assets/misc-BJtHv_Jh.js", "/assets/components-9EGYHTc_.js", "/assets/user-BBryXlM_.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-88n0To1b.js", "imports": ["/assets/index-BFGhCX_U.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-D6KsriIk.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/index-BCxBKsqT.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/mdx-hW1uYjc1.js", "/assets/progress-DAB3nDa2.js", "/assets/misc-BJtHv_Jh.js", "/assets/seo-pBpFCWsy.js", "/assets/components-9EGYHTc_.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-BA2Xhzqs.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/misc-BJtHv_Jh.js", "/assets/components-9EGYHTc_.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-C5yGKUmm.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/index-BCxBKsqT.js", "/assets/error-boundary-1-dmC941.js", "/assets/nav-chevrons-CgbSMLeb.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/mdx-hW1uYjc1.js", "/assets/progress-DAB3nDa2.js", "/assets/set-playground-S_rIwJAa.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-BJtHv_Jh.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/tooltip-BgynKV2c.js", "/assets/request-info-DCIQLE6H.js", "/assets/components-9EGYHTc_.js", "/assets/index-BuoaxPEj.js", "/assets/progress-bar-Cj5R4Zk7.js", "/assets/pe-ChIwTk8v.js", "/assets/index-BuA_RWlU.js", "/assets/index-_J-F_Dnc.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-CM8yuYni.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/preview-CW_12I0i.js", "/assets/components-9EGYHTc_.js", "/assets/misc-BJtHv_Jh.js", "/assets/request-info-DCIQLE6H.js", "/assets/button-DQ001ob0.js", "/assets/loading-Dk0n07O3.js", "/assets/index-_J-F_Dnc.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-CmmC-_8P.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/tooltip-BgynKV2c.js", "/assets/index-BuA_RWlU.js", "/assets/misc-BJtHv_Jh.js", "/assets/diff-assn_bSK.js", "/assets/error-boundary-1-dmC941.js", "/assets/loading-Dk0n07O3.js", "/assets/discord-CHsbqaqM.js", "/assets/components-9EGYHTc_.js", "/assets/index-DRH72MzK.js", "/assets/set-playground-S_rIwJAa.js", "/assets/tests-CTs57UUU.js", "/assets/preview-CW_12I0i.js", "/assets/index-BuoaxPEj.js", "/assets/accordion-DC885Li1.js", "/assets/mdx-hW1uYjc1.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/pe-ChIwTk8v.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/use-event-source-x59d4R2Z.js", "/assets/button-DQ001ob0.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-CtH75Laz.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/tests-CTs57UUU.js", "/assets/components-9EGYHTc_.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/misc-BJtHv_Jh.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/accordion-DC885Li1.js", "/assets/index-BuA_RWlU.js", "/assets/index-BuoaxPEj.js", "/assets/use-event-source-x59d4R2Z.js", "/assets/set-playground-S_rIwJAa.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-DEzaS_Ji.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/index-BCxBKsqT.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/loading-Dk0n07O3.js", "/assets/nav-chevrons-CgbSMLeb.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/mdx-hW1uYjc1.js", "/assets/progress-DAB3nDa2.js", "/assets/misc-BJtHv_Jh.js", "/assets/seo-pBpFCWsy.js", "/assets/components-9EGYHTc_.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-DVV0zwmP.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/index-BCxBKsqT.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/loading-Dk0n07O3.js", "/assets/nav-chevrons-CgbSMLeb.js", "/assets/revalidation-ws-DU-PzW-_.js", "/assets/mdx-hW1uYjc1.js", "/assets/misc-BJtHv_Jh.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-DAB3nDa2.js", "/assets/components-9EGYHTc_.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-KgMLc41c.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/index-BCxBKsqT.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/error-boundary-1-dmC941.js", "/assets/mdx-hW1uYjc1.js", "/assets/misc-BJtHv_Jh.js", "/assets/progress-DAB3nDa2.js", "/assets/components-9EGYHTc_.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-pZYDEC_l.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/use-event-source-x59d4R2Z.js", "/assets/button-DQ001ob0.js", "/assets/loading-Dk0n07O3.js", "/assets/product-C1ynnrN_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/request-info-DCIQLE6H.js", "/assets/components-9EGYHTc_.js", "/assets/misc-BJtHv_Jh.js", "/assets/index-_J-F_Dnc.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-BNS-kEhc.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/components-9EGYHTc_.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-gyrNluke.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/misc-BJtHv_Jh.js", "/assets/tooltip-BgynKV2c.js", "/assets/progress-DAB3nDa2.js", "/assets/components-9EGYHTc_.js", "/assets/pe-ChIwTk8v.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-jlCv3hv0.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/misc-BJtHv_Jh.js", "/assets/diff-assn_bSK.js", "/assets/nav-chevrons-CgbSMLeb.js", "/assets/components-9EGYHTc_.js", "/assets/accordion-DC885Li1.js", "/assets/tooltip-BgynKV2c.js", "/assets/index-BuA_RWlU.js", "/assets/index-BuoaxPEj.js", "/assets/mdx-hW1uYjc1.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/pe-ChIwTk8v.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js", "/assets/progress-bar-Cj5R4Zk7.js", "/assets/revalidation-ws-DU-PzW-_.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-DCuSqnkZ.js", "imports": ["/assets/index-BFGhCX_U.js", "/assets/button-DQ001ob0.js", "/assets/epic-video-GDpD7_Qt.js", "/assets/components-9EGYHTc_.js", "/assets/misc-BJtHv_Jh.js", "/assets/index-_J-F_Dnc.js", "/assets/request-info-DCIQLE6H.js", "/assets/tooltip-BgynKV2c.js", "/assets/pe-ChIwTk8v.js", "/assets/loading-Dk0n07O3.js", "/assets/user-BBryXlM_.js", "/assets/workshop-config-DJY2cXU_.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-c9f53a94.js", "version": "c9f53a94" };
|
|
11120
11135
|
const mode = "production";
|
|
11121
11136
|
const assetsBuildDirectory = "build/client";
|
|
11122
11137
|
const basename = "/";
|
|
11123
|
-
const future = { "v3_fetcherPersist":
|
|
11138
|
+
const future = { "v3_fetcherPersist": true, "v3_relativeSplatPath": true, "v3_throwAbortReason": true, "unstable_singleFetch": true, "unstable_lazyRouteDiscovery": true, "unstable_optimizeDeps": true };
|
|
11124
11139
|
const isSpaMode = false;
|
|
11125
11140
|
const publicPath = "/";
|
|
11126
11141
|
const entry = { module: entryServer };
|