@epic-web/workshop-app 4.22.0 → 4.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/build/client/assets/_exerciseNumber-CpcJsfoV.js +2 -0
  2. package/build/client/assets/{_exerciseNumber-Cq0nozYz.js.map → _exerciseNumber-CpcJsfoV.js.map} +1 -1
  3. package/build/client/assets/_exerciseNumber_.finished-Ddb3J5ls.js +2 -0
  4. package/build/client/assets/{_exerciseNumber_.finished-Q9qnPuZX.js.map → _exerciseNumber_.finished-Ddb3J5ls.js.map} +1 -1
  5. package/build/client/assets/{_layout-AgYGL72C.js → _layout-BLsKV5zF.js} +2 -2
  6. package/build/client/assets/{_layout-AgYGL72C.js.map → _layout-BLsKV5zF.js.map} +1 -1
  7. package/build/client/assets/_layout-CGLKLU3y.js +2 -0
  8. package/build/client/assets/{_layout-C8uU4Hwj.js.map → _layout-CGLKLU3y.js.map} +1 -1
  9. package/build/client/assets/_layout-DVR5FOsb.js +2 -0
  10. package/build/client/assets/_layout-DVR5FOsb.js.map +1 -0
  11. package/build/client/assets/app-BhrXo-z3.js +2 -0
  12. package/build/client/assets/{app-BiWJY58g.js.map → app-BhrXo-z3.js.map} +1 -1
  13. package/build/client/assets/diff-BNr0PhFR.js +2 -0
  14. package/build/client/assets/{diff-Cw8ktQ1-.js.map → diff-BNr0PhFR.js.map} +1 -1
  15. package/build/client/assets/{diff-CpFxuKA2.js → diff-Cr4LLBag.js} +2 -2
  16. package/build/client/assets/{diff-CpFxuKA2.js.map → diff-Cr4LLBag.js.map} +1 -1
  17. package/build/client/assets/{epic-video-iluUs1-s.js → epic-video-CxZy3iqK.js} +2 -2
  18. package/build/client/assets/{epic-video-iluUs1-s.js.map → epic-video-CxZy3iqK.js.map} +1 -1
  19. package/build/client/assets/finished-CU8QBU41.js +2 -0
  20. package/build/client/assets/{finished-Bm-bCUU2.js.map → finished-CU8QBU41.js.map} +1 -1
  21. package/build/client/assets/index-6GyYWV9G.js +2 -0
  22. package/build/client/assets/{index-BATSX33w.js.map → index-6GyYWV9G.js.map} +1 -1
  23. package/build/client/assets/index-BotyhhDm.js +2 -0
  24. package/build/client/assets/{index-Tfdnz1AB.js.map → index-BotyhhDm.js.map} +1 -1
  25. package/build/client/assets/index-c5oITeyN.js +2 -0
  26. package/build/client/assets/{index-Dm1ll1kT.js.map → index-c5oITeyN.js.map} +1 -1
  27. package/build/client/assets/manifest-b61acbe0.js +1 -0
  28. package/build/client/assets/mdx-D7ttfz2V.js +2 -0
  29. package/build/client/assets/mdx-D7ttfz2V.js.map +1 -0
  30. package/build/client/assets/onboarding-Co4cldZ0.js +2 -0
  31. package/build/client/assets/{onboarding-CnmE4HLR.js.map → onboarding-Co4cldZ0.js.map} +1 -1
  32. package/build/client/assets/pe-CUZaIcdt.js +2 -0
  33. package/build/client/assets/pe-CUZaIcdt.js.map +1 -0
  34. package/build/client/assets/preview-CdiZ0d0L.js +2 -0
  35. package/build/client/assets/preview-CdiZ0d0L.js.map +1 -0
  36. package/build/client/assets/progress-Biq-ngNF.js +2 -0
  37. package/build/client/assets/{progress-BsY6hGPp.js.map → progress-Biq-ngNF.js.map} +1 -1
  38. package/build/client/assets/{root-Tcnfz99O.js → root-D_FY953d.js} +2 -2
  39. package/build/client/assets/{root-Tcnfz99O.js.map → root-D_FY953d.js.map} +1 -1
  40. package/build/client/assets/set-playground-BXHckvUG.js +2 -0
  41. package/build/client/assets/set-playground-BXHckvUG.js.map +1 -0
  42. package/build/client/assets/test-BRkbo9G9.js +2 -0
  43. package/build/client/assets/{test-D9HsTvpe.js.map → test-BRkbo9G9.js.map} +1 -1
  44. package/build/client/assets/tests-DQuoxpDA.js +4 -0
  45. package/build/client/assets/tests-DQuoxpDA.js.map +1 -0
  46. package/build/server/index.js +122 -69
  47. package/build/server/index.js.map +1 -1
  48. package/package.json +3 -3
  49. package/build/client/assets/_exerciseNumber-Cq0nozYz.js +0 -2
  50. package/build/client/assets/_exerciseNumber_.finished-Q9qnPuZX.js +0 -2
  51. package/build/client/assets/_layout-BocZ2xWF.js +0 -2
  52. package/build/client/assets/_layout-BocZ2xWF.js.map +0 -1
  53. package/build/client/assets/_layout-C8uU4Hwj.js +0 -2
  54. package/build/client/assets/app-BiWJY58g.js +0 -2
  55. package/build/client/assets/diff-Cw8ktQ1-.js +0 -2
  56. package/build/client/assets/finished-Bm-bCUU2.js +0 -2
  57. package/build/client/assets/index-BATSX33w.js +0 -2
  58. package/build/client/assets/index-Dm1ll1kT.js +0 -2
  59. package/build/client/assets/index-Tfdnz1AB.js +0 -2
  60. package/build/client/assets/manifest-4a3cf2ec.js +0 -1
  61. package/build/client/assets/mdx-M0kcP-mP.js +0 -2
  62. package/build/client/assets/mdx-M0kcP-mP.js.map +0 -1
  63. package/build/client/assets/onboarding-CnmE4HLR.js +0 -2
  64. package/build/client/assets/preview-CqrRe2BV.js +0 -2
  65. package/build/client/assets/preview-CqrRe2BV.js.map +0 -1
  66. package/build/client/assets/progress-BsY6hGPp.js +0 -2
  67. package/build/client/assets/set-playground-Cdy8VlVD.js +0 -2
  68. package/build/client/assets/set-playground-Cdy8VlVD.js.map +0 -1
  69. package/build/client/assets/test-D9HsTvpe.js +0 -2
  70. package/build/client/assets/tests-CmNNBElK.js +0 -4
  71. package/build/client/assets/tests-CmNNBElK.js.map +0 -1
  72. package/build/client/assets/use-hydrated-Citou692.js +0 -2
  73. package/build/client/assets/use-hydrated-Citou692.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  var _a;
2
2
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { PassThrough } from "stream";
4
- import { createReadableStreamFromReadable, redirect, json, createCookieSessionStorage, defer } from "@remix-run/node";
5
- import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useFetcher, useLoaderData, Outlet, Meta, Links, ScrollRestoration, Scripts, useLocation, NavLink, Form, Await, useSearchParams, useSubmit, useNavigate } from "@remix-run/react";
4
+ import { createReadableStreamFromReadable, redirect, json as json$1, createCookieSessionStorage, defer } from "@remix-run/node";
5
+ import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation, json, redirect as redirect$1, useFetcher, useLoaderData, Outlet, Meta, Links, ScrollRestoration, Scripts, NavLink, Form, Await, useSearchParams, useSubmit, useNavigate } from "@remix-run/react";
6
6
  import { isbot } from "isbot";
7
7
  import { renderToPipeableStream, renderToStaticMarkup } from "react-dom/server";
8
8
  import path$1 from "node:path";
@@ -50,11 +50,12 @@ import { Toaster, toast } from "sonner";
50
50
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
51
51
  import { useForm, getFormProps } from "@conform-to/react";
52
52
  import { parseWithZod } from "@conform-to/zod";
53
- import { safeRedirect } from "remix-utils/safe-redirect";
54
53
  import { getHintUtils } from "@epic-web/client-hints";
55
54
  import { clientHint, subscribeToSchemeChange } from "@epic-web/client-hints/color-scheme";
56
55
  import { clientHint as clientHint$2, subscribeToMotionChange } from "@epic-web/client-hints/reduced-motion";
57
56
  import { clientHint as clientHint$1 } from "@epic-web/client-hints/time-zone";
57
+ import { safeRedirect } from "remix-utils/safe-redirect";
58
+ import { ServerOnly } from "remix-utils/server-only";
58
59
  import * as cookie from "cookie";
59
60
  import { createId } from "@paralleldrive/cuid2";
60
61
  import { usePartySocket } from "partysocket/react";
@@ -3255,6 +3256,31 @@ function ErrorList({
3255
3256
  if (!(errorsToRender == null ? void 0 : errorsToRender.length)) return null;
3256
3257
  return /* @__PURE__ */ jsx("ul", { id, className: "space-y-1", children: errorsToRender.map((e) => /* @__PURE__ */ jsx("li", { className: "text-danger text-[10px]", children: e }, e)) });
3257
3258
  }
3259
+ const PE_REDIRECT_INPUT_NAME = "__PE_redirectTo";
3260
+ function usePERedirectInput() {
3261
+ const location = useLocation();
3262
+ return /* @__PURE__ */ jsx(ServerOnly, { children: () => /* @__PURE__ */ jsx(
3263
+ "input",
3264
+ {
3265
+ type: "hidden",
3266
+ name: PE_REDIRECT_INPUT_NAME,
3267
+ value: location.pathname
3268
+ }
3269
+ ) });
3270
+ }
3271
+ function ensureProgressiveEnhancement(formData, responseInit) {
3272
+ const redirectTo = formData.get(PE_REDIRECT_INPUT_NAME);
3273
+ if (typeof redirectTo === "string") {
3274
+ throw redirect$1(safeRedirect(redirectTo), responseInit == null ? void 0 : responseInit());
3275
+ }
3276
+ }
3277
+ function jsonWithPE(formData, ...args) {
3278
+ ensureProgressiveEnhancement(formData, () => ({
3279
+ statusText: JSON.stringify(args[0]),
3280
+ ...typeof args[1] === "number" ? { status: args[1] } : args[1]
3281
+ }));
3282
+ return json(...args);
3283
+ }
3258
3284
  const cookieName$1 = "EpicShop_theme";
3259
3285
  function getTheme(request) {
3260
3286
  const cookieHeader = request.headers.get("cookie");
@@ -3270,7 +3296,6 @@ function setTheme(theme) {
3270
3296
  }
3271
3297
  const ROUTE_PATH = "/theme";
3272
3298
  const ThemeFormSchema = z$1.object({
3273
- redirectTo: z$1.string().optional(),
3274
3299
  theme: z$1.enum(["system", "light", "dark"])
3275
3300
  });
3276
3301
  async function action$c({ request }) {
@@ -3279,28 +3304,21 @@ async function action$c({ request }) {
3279
3304
  schema: ThemeFormSchema
3280
3305
  });
3281
3306
  if (submission.status !== "success") {
3282
- return json(submission.reply(), {
3307
+ return json$1(submission.reply(), {
3283
3308
  // You can also use the status to determine the HTTP status code
3284
3309
  status: submission.status === "error" ? 400 : 200
3285
3310
  });
3286
3311
  }
3287
- const { redirectTo, theme } = submission.value;
3312
+ const { theme } = submission.value;
3288
3313
  const responseInit = {
3289
3314
  headers: { "set-cookie": setTheme(theme) }
3290
3315
  };
3291
- if (redirectTo) {
3292
- return redirect(safeRedirect(redirectTo), responseInit);
3293
- } else {
3294
- return json(submission.reply(), responseInit);
3295
- }
3316
+ return jsonWithPE(formData, submission.reply(), responseInit);
3296
3317
  }
3297
3318
  function ThemeSwitch() {
3298
3319
  const requestInfo = useRequestInfo();
3320
+ const peRedirectInput = usePERedirectInput();
3299
3321
  const fetcher = useFetcher();
3300
- const [isHydrated, setIsHydrated] = React.useState(false);
3301
- React.useEffect(() => {
3302
- setIsHydrated(true);
3303
- }, []);
3304
3322
  const [form] = useForm({
3305
3323
  lastResult: fetcher.data,
3306
3324
  onValidate({ formData }) {
@@ -3316,7 +3334,7 @@ function ThemeSwitch() {
3316
3334
  };
3317
3335
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: ROUTE_PATH, ...getFormProps(form), children: [
3318
3336
  /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
3319
- isHydrated ? null : /* @__PURE__ */ jsx("input", { type: "hidden", name: "redirectTo", value: requestInfo.path }),
3337
+ peRedirectInput,
3320
3338
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "theme", value: nextMode }),
3321
3339
  /* @__PURE__ */ jsx(SimpleTooltip, { content: `Change theme from ${mode2} mode`, children: /* @__PURE__ */ jsx(
3322
3340
  "button",
@@ -3971,7 +3989,7 @@ async function loader$y({ request }) {
3971
3989
  const user = await getUserInfo();
3972
3990
  const apps = await getApps({ request, timings });
3973
3991
  const presentUsers = await getPresentUsers(user, { request, timings });
3974
- return json(
3992
+ return json$1(
3975
3993
  {
3976
3994
  workshopTitle,
3977
3995
  workshopSubtitle,
@@ -4458,7 +4476,7 @@ async function action$b({ request }) {
4458
4476
  return otherAreFinished ? `You completed exercise ${exerciseNumber}!` : null;
4459
4477
  }
4460
4478
  const announcement = getCompletionAnnouncement();
4461
- return json(result, {
4479
+ return jsonWithPE(formData, result, {
4462
4480
  headers: combineHeaders(
4463
4481
  announcement ? createConfettiHeaders() : null,
4464
4482
  announcement ? await createToastHeaders({
@@ -4475,6 +4493,7 @@ function ProgressToggle({
4475
4493
  }) {
4476
4494
  var _a2, _b, _c, _d;
4477
4495
  const progressFetcher = useFetcher();
4496
+ const peRedirectInput = usePERedirectInput();
4478
4497
  const progressItem = useProgressItem(progressItemSearch);
4479
4498
  const animationRef = React.useRef(null);
4480
4499
  const buttonRef = React.useRef(null);
@@ -4509,6 +4528,7 @@ function ProgressToggle({
4509
4528
  }, [startAnimation]);
4510
4529
  if (ENV.EPICSHOP_DEPLOYED || !progressItem) return null;
4511
4530
  return /* @__PURE__ */ jsxs(progressFetcher.Form, { method: "POST", action: "/progress", children: [
4531
+ peRedirectInput,
4512
4532
  /* @__PURE__ */ jsx(
4513
4533
  "input",
4514
4534
  {
@@ -4602,7 +4622,7 @@ async function loader$w({ request }) {
4602
4622
  (_a2 = extractNumbersAndTypeFromAppNameOrPath(playgroundAppName ?? "")) == null ? void 0 : _a2.exerciseNumber
4603
4623
  )
4604
4624
  };
4605
- const result = json(
4625
+ const result = json$1(
4606
4626
  {
4607
4627
  workshopTitle,
4608
4628
  exercises: exercises.map((e) => ({
@@ -5778,7 +5798,7 @@ const handle$7 = {
5778
5798
  async function loader$u({ request }) {
5779
5799
  ensureUndeployed();
5780
5800
  await requireAuthInfo({ request });
5781
- return json({ discordAuthUrl: getDiscordAuthURL() });
5801
+ return json$1({ discordAuthUrl: getDiscordAuthURL() });
5782
5802
  }
5783
5803
  async function action$a({ request }) {
5784
5804
  ensureUndeployed();
@@ -6457,7 +6477,7 @@ const handle$6 = {
6457
6477
  getSitemapEntries: () => null
6458
6478
  };
6459
6479
  async function loader$o() {
6460
- return json({ discordAuthUrl: getDiscordAuthURL() });
6480
+ return json$1({ discordAuthUrl: getDiscordAuthURL() });
6461
6481
  }
6462
6482
  function useDiscordCTALink({
6463
6483
  discordAuthUrl
@@ -6610,12 +6630,12 @@ const ignoredInputs = [
6610
6630
  async function action$8({ request }) {
6611
6631
  const result = PlayerPreferencesSchema.safeParse(await request.json());
6612
6632
  if (!result.success) {
6613
- return json({ status: "error", error: result.error.flatten() }, {
6633
+ return json$1({ status: "error", error: result.error.flatten() }, {
6614
6634
  status: 400
6615
6635
  });
6616
6636
  }
6617
6637
  await setPlayerPreferences(result.data);
6618
- return json({ status: "success" });
6638
+ return json$1({ status: "success" });
6619
6639
  }
6620
6640
  function useLatest(value) {
6621
6641
  const ref = React.useRef(value);
@@ -7698,19 +7718,23 @@ async function action$7({ request }) {
7698
7718
  results.push(await launchEditor(file.filepath, file.line, file.column));
7699
7719
  }
7700
7720
  if (results.every((r) => r.status === "success")) {
7701
- return json({ status: "success" });
7721
+ return jsonWithPE(formData, { status: "success" });
7702
7722
  } else {
7703
7723
  const messages = results.map(
7704
7724
  (r, index, array) => r.status === "error" ? array.length > 1 ? `${index}. ${r.message}` : r.message : null
7705
7725
  ).filter(Boolean).join("\n");
7706
7726
  console.error("Launch editor error:", messages);
7707
- return json({ status: "error", message: messages }, {
7708
- headers: await createToastHeaders({
7709
- type: "error",
7710
- title: "Launch Editor Error",
7711
- description: messages
7712
- })
7713
- });
7727
+ return jsonWithPE(
7728
+ formData,
7729
+ { status: "error", message: messages },
7730
+ {
7731
+ headers: await createToastHeaders({
7732
+ type: "error",
7733
+ title: "Launch Editor Error",
7734
+ description: messages
7735
+ })
7736
+ }
7737
+ );
7714
7738
  }
7715
7739
  }
7716
7740
  function useLaunchFetcher(onUpdate) {
@@ -7734,6 +7758,7 @@ function LaunchEditorImpl({
7734
7758
  }) {
7735
7759
  var _a2;
7736
7760
  const fetcher = useLaunchFetcher(onUpdate);
7761
+ const peRedirectInput = usePERedirectInput();
7737
7762
  const fileList = typeof appFile === "string" ? [appFile] : appFile;
7738
7763
  const type = file ? "file" : appFile ? "appFile" : "";
7739
7764
  const syncToType = (syncTo == null ? void 0 : syncTo.file) ? "file" : (syncTo == null ? void 0 : syncTo.appFile) ? "appFile" : "";
@@ -7744,6 +7769,7 @@ function LaunchEditorImpl({
7744
7769
  method: "POST",
7745
7770
  className: "flex items-center",
7746
7771
  children: [
7772
+ peRedirectInput,
7747
7773
  showProgressBarField,
7748
7774
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "line", value: line }),
7749
7775
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "column", value: column }),
@@ -8210,7 +8236,7 @@ async function loader$m({ request, params }) {
8210
8236
  if (!exercise) {
8211
8237
  throw new Response("Not found", { status: 404 });
8212
8238
  }
8213
- const result = json(
8239
+ const result = json$1(
8214
8240
  {
8215
8241
  exerciseNumber: exercise.exerciseNumber,
8216
8242
  exerciseTitle: exercise.title,
@@ -8701,18 +8727,22 @@ async function action$6({ request }) {
8701
8727
  ensureUndeployed();
8702
8728
  const formData = await request.formData();
8703
8729
  const rawData = {
8704
- appName: formData.get("appName")
8730
+ appName: formData.get("appName"),
8731
+ redirectTo: formData.get("redirectTo")
8705
8732
  };
8706
8733
  const result = SetPlaygroundSchema.safeParse(rawData);
8707
8734
  if (!result.success) {
8708
- return json({ status: "error", error: result.error.message }, {
8709
- status: 400
8710
- });
8735
+ return jsonWithPE(
8736
+ formData,
8737
+ { status: "error", error: result.error.message },
8738
+ { status: 400 }
8739
+ );
8711
8740
  }
8712
8741
  const form = result.data;
8713
8742
  const app = await getAppByName(form.appName);
8714
8743
  if (!app) {
8715
- return json(
8744
+ return jsonWithPE(
8745
+ formData,
8716
8746
  { status: "error", error: `App ${form.appName} not found` },
8717
8747
  { status: 404 }
8718
8748
  );
@@ -8723,7 +8753,7 @@ async function action$6({ request }) {
8723
8753
  } catch (error) {
8724
8754
  const message = getErrorMessage(error);
8725
8755
  console.error("Error setting playground", message);
8726
- return json({ status: "error", error: message }, {
8756
+ return json$1({ status: "error", error: message }, {
8727
8757
  status: 500,
8728
8758
  headers: await createToastHeaders({
8729
8759
  type: "error",
@@ -8737,7 +8767,7 @@ async function action$6({ request }) {
8737
8767
  if (playground && converseApp) {
8738
8768
  await getDiffCode(playground, converseApp, { forceFresh: true });
8739
8769
  }
8740
- return json({ status: "success" });
8770
+ return jsonWithPE(formData, { status: "success" });
8741
8771
  }
8742
8772
  function SetPlayground({
8743
8773
  appName,
@@ -8747,6 +8777,7 @@ function SetPlayground({
8747
8777
  }) {
8748
8778
  var _a2;
8749
8779
  const fetcher = useFetcher();
8780
+ const peRedirectInput = usePERedirectInput();
8750
8781
  const submitButton = /* @__PURE__ */ jsx(
8751
8782
  "button",
8752
8783
  {
@@ -8766,6 +8797,7 @@ function SetPlayground({
8766
8797
  method: "POST",
8767
8798
  className: "inline-flex items-center justify-center",
8768
8799
  children: [
8800
+ peRedirectInput,
8769
8801
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "appName", value: appName }),
8770
8802
  reset ? /* @__PURE__ */ jsx("input", { type: "hidden", name: "reset", value: "true" }) : null,
8771
8803
  showProgressBarField,
@@ -8896,7 +8928,7 @@ async function action$5({ request }) {
8896
8928
  const { cacheLocation, embeddedKey, appFullPath } = cacheSchema.parse(rawData);
8897
8929
  if (!await checkFileExists(cacheLocation)) {
8898
8930
  console.log(`file ${cacheLocation} not found`);
8899
- return json({ success: true });
8931
+ return json$1({ success: true });
8900
8932
  }
8901
8933
  const cached = JSON.parse(
8902
8934
  await fs.promises.readFile(cacheLocation, "utf-8")
@@ -8918,7 +8950,7 @@ async function action$5({ request }) {
8918
8950
  );
8919
8951
  }
8920
8952
  setModifiedTimesForDir(appFullPath);
8921
- return json({ success: true });
8953
+ return jsonWithPE(formData, { success: true });
8922
8954
  }
8923
8955
  function UpdateMdxCache({
8924
8956
  handleClick,
@@ -8927,7 +8959,9 @@ function UpdateMdxCache({
8927
8959
  appFullPath
8928
8960
  }) {
8929
8961
  const fetcher = useFetcher();
8962
+ const peRedirectInput = usePERedirectInput();
8930
8963
  return /* @__PURE__ */ jsxs(fetcher.Form, { action: "/update-mdx-cache", method: "POST", children: [
8964
+ peRedirectInput,
8931
8965
  showProgressBarField,
8932
8966
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "cacheLocation", value: cacheLocation }),
8933
8967
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "embeddedKey", value: embeddedKey }),
@@ -9645,10 +9679,10 @@ async function action$4({ request }) {
9645
9679
  const appRunningResult = await waitOnApp(app);
9646
9680
  if ((appRunningResult == null ? void 0 : appRunningResult.status) === "success") {
9647
9681
  await new Promise((resolve) => setTimeout(resolve, 200));
9648
- return json({ status: "app-started" });
9682
+ return jsonWithPE(formData, { status: "app-started" });
9649
9683
  } else if (app.dev.type === "script") {
9650
9684
  const errorMessage = appRunningResult ? appRunningResult.error : "Unknown error";
9651
- return json(
9685
+ return json$1(
9652
9686
  {
9653
9687
  status: "app-not-started",
9654
9688
  error: errorMessage,
@@ -9666,7 +9700,7 @@ async function action$4({ request }) {
9666
9700
  );
9667
9701
  }
9668
9702
  } else if (result.portNumber) {
9669
- return json({
9703
+ return jsonWithPE(formData, {
9670
9704
  status: "app-not-started",
9671
9705
  error: result.status,
9672
9706
  port: result.portNumber
@@ -9681,7 +9715,7 @@ async function action$4({ request }) {
9681
9715
  async function stopApp() {
9682
9716
  invariant(app, "app must be defined");
9683
9717
  await closeProcess(app.name);
9684
- return json({ status: "app-stopped" });
9718
+ return jsonWithPE(formData, { status: "app-stopped" });
9685
9719
  }
9686
9720
  switch (intent) {
9687
9721
  case "start": {
@@ -9700,17 +9734,19 @@ async function action$4({ request }) {
9700
9734
  const port2 = formData.get("port");
9701
9735
  invariantResponse(typeof port2 === "string", "port is required");
9702
9736
  await stopPort(port2);
9703
- return json({ status: "port-stopped" });
9737
+ return jsonWithPE(formData, { status: "port-stopped" });
9704
9738
  }
9705
9739
  throw new Error(`Unknown intent: ${intent}`);
9706
9740
  }
9707
9741
  function AppStopper({ name }) {
9708
9742
  var _a2;
9709
9743
  const fetcher = useFetcher();
9744
+ const peRedirectInput = usePERedirectInput();
9710
9745
  const inFlightIntent = (_a2 = fetcher.formData) == null ? void 0 : _a2.get("intent");
9711
9746
  const inFlightState = inFlightIntent === "stop" ? "Stopping App" : inFlightIntent === "restart" ? "Restarting App" : null;
9712
9747
  const altDown = useAltDown();
9713
9748
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/start", children: [
9749
+ peRedirectInput,
9714
9750
  showProgressBarField,
9715
9751
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "name", value: name }),
9716
9752
  /* @__PURE__ */ jsx(
@@ -9727,7 +9763,10 @@ function AppStopper({ name }) {
9727
9763
  }
9728
9764
  function PortStopper({ port: port2 }) {
9729
9765
  const fetcher = useFetcher();
9766
+ const peRedirectInput = usePERedirectInput();
9730
9767
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/start", children: [
9768
+ peRedirectInput,
9769
+ showProgressBarField,
9731
9770
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "port", value: port2 }),
9732
9771
  /* @__PURE__ */ jsx(Button, { varient: "mono", type: "submit", name: "intent", value: "stop-port", children: fetcher.state === "idle" ? "Stop Port" : "Stopping Port" })
9733
9772
  ] });
@@ -9735,6 +9774,7 @@ function PortStopper({ port: port2 }) {
9735
9774
  function AppStarter({ name }) {
9736
9775
  var _a2;
9737
9776
  const fetcher = useFetcher();
9777
+ const peRedirectInput = usePERedirectInput();
9738
9778
  if (((_a2 = fetcher.data) == null ? void 0 : _a2.status) === "app-not-started") {
9739
9779
  if (fetcher.data.error === "port-unavailable") {
9740
9780
  return /* @__PURE__ */ jsxs("div", { children: [
@@ -9746,6 +9786,8 @@ function AppStarter({ name }) {
9746
9786
  }
9747
9787
  }
9748
9788
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/start", children: [
9789
+ peRedirectInput,
9790
+ showProgressBarField,
9749
9791
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "name", value: name }),
9750
9792
  fetcher.state === "idle" ? /* @__PURE__ */ jsx(Button, { type: "submit", name: "intent", value: "start", varient: "mono", children: "Start App" }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Loading, { children: "Starting App" }) })
9751
9793
  ] });
@@ -10216,7 +10258,7 @@ async function loader$k({ request, params }) {
10216
10258
  const timings = makeTimings("exercise-step-test");
10217
10259
  const exerciseStepApp = await requireExerciseApp(params, { request, timings });
10218
10260
  const { isRunning, portIsAvailable } = await getAppRunningState(exerciseStepApp);
10219
- return json({
10261
+ return json$1({
10220
10262
  appInfo: {
10221
10263
  isRunning,
10222
10264
  name: exerciseStepApp.name,
@@ -11080,15 +11122,15 @@ async function loader$j({ request }) {
11080
11122
  const url = new URL(request.url);
11081
11123
  const name = url.searchParams.get("name");
11082
11124
  if (!name) {
11083
- return json({ error: "Missing name" }, { status: 400 });
11125
+ return json$1({ error: "Missing name" }, { status: 400 });
11084
11126
  }
11085
11127
  const app = await getAppByName(name);
11086
11128
  if (!app) {
11087
- return json({ error: "App not found" }, { status: 404 });
11129
+ return json$1({ error: "App not found" }, { status: 404 });
11088
11130
  }
11089
11131
  const processEntry = getTestProcessEntry(app);
11090
11132
  if (!processEntry) {
11091
- return json({ error: "App is not running tests" }, { status: 404 });
11133
+ return json$1({ error: "App is not running tests" }, { status: 404 });
11092
11134
  }
11093
11135
  return eventStream(request.signal, function setup(send) {
11094
11136
  var _a2, _b;
@@ -11160,30 +11202,35 @@ async function action$3({ request }) {
11160
11202
  name: formData.get("name")
11161
11203
  });
11162
11204
  if (!result.success) {
11163
- return json(
11205
+ return jsonWithPE(
11206
+ formData,
11164
11207
  { success: false, error: result.error.flatten() },
11165
11208
  { status: 400 }
11166
11209
  );
11167
11210
  }
11168
11211
  const app = await getAppByName(result.data.name);
11169
11212
  if (!app) {
11170
- return json({ success: false, error: "App not found" }, { status: 404 });
11213
+ return jsonWithPE(
11214
+ formData,
11215
+ { success: false, error: "App not found" },
11216
+ { status: 404 }
11217
+ );
11171
11218
  }
11172
11219
  switch (result.data.intent) {
11173
11220
  case "run": {
11174
11221
  void runAppTests(app);
11175
- return json({ success: true });
11222
+ return jsonWithPE(formData, { success: true });
11176
11223
  }
11177
11224
  case "stop": {
11178
11225
  const processEntry = getTestProcessEntry(app);
11179
11226
  if (processEntry) {
11180
11227
  (_a2 = processEntry.process) == null ? void 0 : _a2.kill();
11181
11228
  }
11182
- return json({ success: true });
11229
+ return jsonWithPE(formData, { success: true });
11183
11230
  }
11184
11231
  case "clear": {
11185
11232
  clearTestProcessEntry(app);
11186
- return json({ success: true });
11233
+ return jsonWithPE(formData, { success: true });
11187
11234
  }
11188
11235
  }
11189
11236
  }
@@ -11294,6 +11341,7 @@ function TestRunner({
11294
11341
  onRun
11295
11342
  }) {
11296
11343
  const fetcher = useFetcher();
11344
+ const peRedirectInput = usePERedirectInput();
11297
11345
  const latestOnRun = useRef(onRun);
11298
11346
  useEffect(() => {
11299
11347
  latestOnRun.current = onRun;
@@ -11305,6 +11353,7 @@ function TestRunner({
11305
11353
  }
11306
11354
  }, [fetcher.data]);
11307
11355
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/test", className: "h-full", children: [
11356
+ peRedirectInput,
11308
11357
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "name", value: name }),
11309
11358
  /* @__PURE__ */ jsx(
11310
11359
  SimpleTooltip,
@@ -11329,6 +11378,7 @@ function ClearTest({
11329
11378
  onClear
11330
11379
  }) {
11331
11380
  const fetcher = useFetcher();
11381
+ const peRedirectInput = usePERedirectInput();
11332
11382
  const latestOnClear = useRef(onClear);
11333
11383
  useEffect(() => {
11334
11384
  latestOnClear.current = onClear;
@@ -11340,6 +11390,7 @@ function ClearTest({
11340
11390
  }
11341
11391
  }, [fetcher.data]);
11342
11392
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/test", className: "h-full", children: [
11393
+ peRedirectInput,
11343
11394
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "name", value: name }),
11344
11395
  /* @__PURE__ */ jsx(
11345
11396
  SimpleTooltip,
@@ -11364,6 +11415,7 @@ function StopTest({
11364
11415
  onStop
11365
11416
  }) {
11366
11417
  const fetcher = useFetcher();
11418
+ const peRedirectInput = usePERedirectInput();
11367
11419
  const latestOnStop = useRef(onStop);
11368
11420
  useEffect(() => {
11369
11421
  latestOnStop.current = onStop;
@@ -11375,6 +11427,7 @@ function StopTest({
11375
11427
  }
11376
11428
  }, [fetcher.data]);
11377
11429
  return /* @__PURE__ */ jsxs(fetcher.Form, { method: "POST", action: "/test", className: "h-full", children: [
11430
+ peRedirectInput,
11378
11431
  /* @__PURE__ */ jsx("input", { type: "hidden", name: "name", value: name }),
11379
11432
  /* @__PURE__ */ jsx(
11380
11433
  SimpleTooltip,
@@ -11769,7 +11822,7 @@ const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
11769
11822
  async function loader$h({ request, params }) {
11770
11823
  const timings = makeTimings("exercise-step-test");
11771
11824
  const exerciseStepApp = await requireExerciseApp(params, { request, timings });
11772
- return json({
11825
+ return json$1({
11773
11826
  appInfo: {
11774
11827
  name: exerciseStepApp == null ? void 0 : exerciseStepApp.name,
11775
11828
  test: exerciseStepApp == null ? void 0 : exerciseStepApp.test
@@ -12389,12 +12442,12 @@ async function loader$b() {
12389
12442
  ensureUndeployed();
12390
12443
  const isAuthenticated = Boolean(await getAuthInfo());
12391
12444
  if (isAuthenticated) throw redirect("/account");
12392
- return json({});
12445
+ return json$1({});
12393
12446
  }
12394
12447
  async function action$2() {
12395
12448
  ensureUndeployed();
12396
12449
  void registerDevice();
12397
- return json({ status: "pending" });
12450
+ return json$1({ status: "pending" });
12398
12451
  }
12399
12452
  function Login() {
12400
12453
  var _a2;
@@ -12626,7 +12679,7 @@ async function loader$a({ request }) {
12626
12679
  ] of getProcesses().testProcesses.entries()) {
12627
12680
  testProcesses2[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode };
12628
12681
  }
12629
- return json(
12682
+ return json$1(
12630
12683
  {
12631
12684
  apps,
12632
12685
  processes,
@@ -12648,19 +12701,19 @@ async function action$1({ request }) {
12648
12701
  switch (intent) {
12649
12702
  case "clear-data": {
12650
12703
  await clearData();
12651
- return json({ success: true });
12704
+ return json$1({ success: true });
12652
12705
  }
12653
12706
  case "clear-caches": {
12654
12707
  await clearCaches();
12655
- return json({ success: true });
12708
+ return json$1({ success: true });
12656
12709
  }
12657
12710
  case "inspect": {
12658
12711
  await startInspector();
12659
- return json({ success: true });
12712
+ return json$1({ success: true });
12660
12713
  }
12661
12714
  case "stop-inspect": {
12662
12715
  await stopInspector();
12663
- return json({ success: true });
12716
+ return json$1({ success: true });
12664
12717
  }
12665
12718
  default: {
12666
12719
  throw new Error(`Unknown intent: ${intent}`);
@@ -12823,7 +12876,7 @@ const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12823
12876
  async function loader$9() {
12824
12877
  ensureUndeployed();
12825
12878
  const apps = await getApps();
12826
- return json({ apps });
12879
+ return json$1({ apps });
12827
12880
  }
12828
12881
  const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12829
12882
  __proto__: null,
@@ -12832,7 +12885,7 @@ const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12832
12885
  async function loader$8() {
12833
12886
  ensureUndeployed();
12834
12887
  const entries = await getAllFileCacheEntries();
12835
- return json({ entries });
12888
+ return json$1({ entries });
12836
12889
  }
12837
12890
  const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12838
12891
  __proto__: null,
@@ -12841,7 +12894,7 @@ const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12841
12894
  async function loader$7({ request }) {
12842
12895
  const timings = makeTimings("appsLoader");
12843
12896
  const apps = await getApps({ request, timings });
12844
- return json(
12897
+ return json$1(
12845
12898
  { apps },
12846
12899
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12847
12900
  );
@@ -12943,7 +12996,7 @@ const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12943
12996
  async function loader$5({ request }) {
12944
12997
  const timings = makeTimings("appsLoader");
12945
12998
  const exercises = await getExercises({ request, timings });
12946
- return json(
12999
+ return json$1(
12947
13000
  { exercises },
12948
13001
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12949
13002
  );
@@ -13417,7 +13470,7 @@ async function loader$2() {
13417
13470
  ] of getProcesses().testProcesses.entries()) {
13418
13471
  testProcesses2[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode, output };
13419
13472
  }
13420
- return json({ processes, testProcesses: testProcesses2 });
13473
+ return json$1({ processes, testProcesses: testProcesses2 });
13421
13474
  }
13422
13475
  const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13423
13476
  __proto__: null,
@@ -13445,7 +13498,7 @@ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13445
13498
  __proto__: null,
13446
13499
  loader
13447
13500
  }, Symbol.toStringTag, { value: "Module" }));
13448
- const serverManifest = { "entry": { "module": "/assets/entry.client-3M2p-8I3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-Tcnfz99O.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/use-hydrated-Citou692.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-B-hHvmeV.js", "/assets/index-BATSX33w.js", "/assets/presence-Cr--lRCr.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/_-DbrWZazo.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/error-boundary-DDTvdkB4.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-AgYGL72C.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/use-hydrated-Citou692.js", "/assets/index-BXWoOGxB.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-BsY6hGPp.js", "/assets/index-BATSX33w.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-7o6O4ruO.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/button-BklqyTPS.js", "/assets/tooltip-BiHTe_7F.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.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+/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-CHP4_JLJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/user-D6tTg1yS.js", "/assets/discord-Dq4e30wV.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-BUs3av-e.js", "imports": ["/assets/index-1cKOJFpX.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-Cq0nozYz.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-M0kcP-mP.js", "/assets/progress-BsY6hGPp.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-B5pmJ29o.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.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-BocZ2xWF.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-M0kcP-mP.js", "/assets/progress-BsY6hGPp.js", "/assets/set-playground-Cdy8VlVD.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-BiWJY58g.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-BATSX33w.js", "/assets/preview-CqrRe2BV.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-Dm1ll1kT.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-M0kcP-mP.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cdy8VlVD.js", "/assets/button-BklqyTPS.js", "/assets/diff-CpFxuKA2.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/discord-Dq4e30wV.js", "/assets/index-B-hHvmeV.js", "/assets/tests-CmNNBElK.js", "/assets/preview-CqrRe2BV.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-D9HsTvpe.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/index-BATSX33w.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cdy8VlVD.js", "/assets/tests-CmNNBElK.js"], "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-Q9qnPuZX.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-M0kcP-mP.js", "/assets/progress-BsY6hGPp.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-Bm-bCUU2.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-M0kcP-mP.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-BsY6hGPp.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-Tfdnz1AB.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/mdx-M0kcP-mP.js", "/assets/progress-BsY6hGPp.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-4cvVFzF8.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.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-hcqGIpir.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-C8uU4Hwj.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/progress-BsY6hGPp.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-Cw8ktQ1-.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-iluUs1-s.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-M0kcP-mP.js", "/assets/diff-CpFxuKA2.js", "/assets/nav-chevrons-B82nbdyj.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-CnmE4HLR.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BATSX33w.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/button-BklqyTPS.js", "/assets/epic-video-iluUs1-s.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/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-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-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-4a3cf2ec.js", "version": "4a3cf2ec" };
13501
+ const serverManifest = { "entry": { "module": "/assets/entry.client-3M2p-8I3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-D_FY953d.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-B-hHvmeV.js", "/assets/index-6GyYWV9G.js", "/assets/presence-Cr--lRCr.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/_-DbrWZazo.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/error-boundary-DDTvdkB4.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-BLsKV5zF.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BXWoOGxB.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-Biq-ngNF.js", "/assets/index-6GyYWV9G.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-7o6O4ruO.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/button-BklqyTPS.js", "/assets/tooltip-BiHTe_7F.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.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+/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-CHP4_JLJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/user-D6tTg1yS.js", "/assets/discord-Dq4e30wV.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-BUs3av-e.js", "imports": ["/assets/index-1cKOJFpX.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-CpcJsfoV.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.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-B5pmJ29o.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.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-DVR5FOsb.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.js", "/assets/set-playground-BXHckvUG.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-BhrXo-z3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/pe-CUZaIcdt.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-6GyYWV9G.js", "/assets/preview-CdiZ0d0L.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-c5oITeyN.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-D7ttfz2V.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-BXHckvUG.js", "/assets/button-BklqyTPS.js", "/assets/diff-Cr4LLBag.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/discord-Dq4e30wV.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DQuoxpDA.js", "/assets/preview-CdiZ0d0L.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-BRkbo9G9.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/index-6GyYWV9G.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-BXHckvUG.js", "/assets/tests-DQuoxpDA.js"], "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-Ddb3J5ls.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.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-CU8QBU41.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Biq-ngNF.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-BotyhhDm.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.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-4cvVFzF8.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.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-hcqGIpir.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-CGLKLU3y.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-BiHTe_7F.js", "/assets/progress-Biq-ngNF.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-BNr0PhFR.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-D7ttfz2V.js", "/assets/diff-Cr4LLBag.js", "/assets/nav-chevrons-B82nbdyj.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-Co4cldZ0.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/button-BklqyTPS.js", "/assets/epic-video-CxZy3iqK.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/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-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-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-b61acbe0.js", "version": "b61acbe0" };
13449
13502
  const mode = "production";
13450
13503
  const assetsBuildDirectory = "build/client";
13451
13504
  const basename = "/";