@epic-web/workshop-app 5.16.0 → 5.18.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.
Files changed (102) hide show
  1. package/build/client/assets/{_-BbjJ9R-5.js → _-BDcQ_M2J.js} +2 -2
  2. package/build/client/assets/{_-BbjJ9R-5.js.map → _-BDcQ_M2J.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber-Bd4c2v-C.js → _exerciseNumber-CG2AFTtQ.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber-Bd4c2v-C.js.map → _exerciseNumber-CG2AFTtQ.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-CZKDy98j.js → _exerciseNumber_._stepNumber-COWC332q.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-CZKDy98j.js.map → _exerciseNumber_._stepNumber-COWC332q.js.map} +1 -1
  7. package/build/client/assets/{_exerciseNumber_.finished-LvfViAKb.js → _exerciseNumber_.finished-BgGBYU74.js} +2 -2
  8. package/build/client/assets/{_exerciseNumber_.finished-LvfViAKb.js.map → _exerciseNumber_.finished-BgGBYU74.js.map} +1 -1
  9. package/build/client/assets/_layout-DKC1JUTc.js +2 -0
  10. package/build/client/assets/_layout-DKC1JUTc.js.map +1 -0
  11. package/build/client/assets/_layout-DuDUPWax.js +6 -0
  12. package/build/client/assets/_layout-DuDUPWax.js.map +1 -0
  13. package/build/client/assets/{accordion-BL_cX9y6.js → accordion-BPyhq471.js} +2 -2
  14. package/build/client/assets/{accordion-BL_cX9y6.js.map → accordion-BPyhq471.js.map} +1 -1
  15. package/build/client/assets/{account-C4MWGVQU.js → account-BwQvf4AS.js} +2 -2
  16. package/build/client/assets/{account-C4MWGVQU.js.map → account-BwQvf4AS.js.map} +1 -1
  17. package/build/client/assets/app-XHqxOZfy.js +2 -0
  18. package/build/client/assets/{app-DK_pEo6e.js.map → app-XHqxOZfy.js.map} +1 -1
  19. package/build/client/assets/button-DVPKzWkn.js +2 -0
  20. package/build/client/assets/{button-DhtjxLl5.js.map → button-DVPKzWkn.js.map} +1 -1
  21. package/build/client/assets/{diff-DI-wBaTF.js → diff-C7Zh3uuA.js} +2 -2
  22. package/build/client/assets/{diff-DI-wBaTF.js.map → diff-C7Zh3uuA.js.map} +1 -1
  23. package/build/client/assets/diff-DVOUmaq6.js +2 -0
  24. package/build/client/assets/{diff-BrUTVi14.js.map → diff-DVOUmaq6.js.map} +1 -1
  25. package/build/client/assets/discord-CFZUT74L.js +2 -0
  26. package/build/client/assets/discord-CFZUT74L.js.map +1 -0
  27. package/build/client/assets/{discord-DsGCI_e6.js → discord-CoBo5eVK.js} +2 -2
  28. package/build/client/assets/{discord-DsGCI_e6.js.map → discord-CoBo5eVK.js.map} +1 -1
  29. package/build/client/assets/{epic-video-DoUlMEIW.js → epic-video-DRZssA4U.js} +2 -2
  30. package/build/client/assets/{epic-video-DoUlMEIW.js.map → epic-video-DRZssA4U.js.map} +1 -1
  31. package/build/client/assets/{error-boundary-DBVB3BBH.js → error-boundary-De7jJlR5.js} +2 -2
  32. package/build/client/assets/{error-boundary-DBVB3BBH.js.map → error-boundary-De7jJlR5.js.map} +1 -1
  33. package/build/client/assets/{finished-y90Pn48k.js → finished-6JNE1a1E.js} +2 -2
  34. package/build/client/assets/{finished-y90Pn48k.js.map → finished-6JNE1a1E.js.map} +1 -1
  35. package/build/client/assets/{index-D7-ne3iG.js → index-6Hu4Lmzn.js} +2 -2
  36. package/build/client/assets/{index-D7-ne3iG.js.map → index-6Hu4Lmzn.js.map} +1 -1
  37. package/build/client/assets/{index-CWadM2q_.js → index-BE3KRz8n.js} +2 -2
  38. package/build/client/assets/{index-CWadM2q_.js.map → index-BE3KRz8n.js.map} +1 -1
  39. package/build/client/assets/{index-BOO5UotZ.js → index-BZWIdOoA.js} +2 -2
  40. package/build/client/assets/{index-BOO5UotZ.js.map → index-BZWIdOoA.js.map} +1 -1
  41. package/build/client/assets/{index-BH_SsYHe.js → index-Cnxrq9Ny.js} +2 -2
  42. package/build/client/assets/{index-BH_SsYHe.js.map → index-Cnxrq9Ny.js.map} +1 -1
  43. package/build/client/assets/{index-De6oiBJI.js → index-CyFsiCNp.js} +2 -2
  44. package/build/client/assets/{index-De6oiBJI.js.map → index-CyFsiCNp.js.map} +1 -1
  45. package/build/client/assets/{index-BpZ0TCe-.js → index-M647UyZv.js} +2 -2
  46. package/build/client/assets/{index-BpZ0TCe-.js.map → index-M647UyZv.js.map} +1 -1
  47. package/build/client/assets/{loading-D4V_nJZr.js → loading-ClL22bF9.js} +2 -2
  48. package/build/client/assets/{loading-D4V_nJZr.js.map → loading-ClL22bF9.js.map} +1 -1
  49. package/build/client/assets/{login-DiEHnGfv.js → login-C3I5NCrj.js} +2 -2
  50. package/build/client/assets/{login-DiEHnGfv.js.map → login-C3I5NCrj.js.map} +1 -1
  51. package/build/client/assets/{manifest-2ba0f4a0.js → manifest-a58be1e7.js} +1 -1
  52. package/build/client/assets/{mdx-Ce3knRHx.js → mdx-Z4bEoKXn.js} +2 -2
  53. package/build/client/assets/{mdx-Ce3knRHx.js.map → mdx-Z4bEoKXn.js.map} +1 -1
  54. package/build/client/assets/{misc-D9k1wGip.js → misc-BK2EiKtY.js} +2 -2
  55. package/build/client/assets/{misc-D9k1wGip.js.map → misc-BK2EiKtY.js.map} +1 -1
  56. package/build/client/assets/{nav-chevrons-CM-frhig.js → nav-chevrons-DVD_0i2a.js} +2 -2
  57. package/build/client/assets/{nav-chevrons-CM-frhig.js.map → nav-chevrons-DVD_0i2a.js.map} +1 -1
  58. package/build/client/assets/{onboarding-Dnb9KzTs.js → onboarding-DjyKxkKx.js} +2 -2
  59. package/build/client/assets/{onboarding-Dnb9KzTs.js.map → onboarding-DjyKxkKx.js.map} +1 -1
  60. package/build/client/assets/{online-BrcRwzQC.js → online-CHlOuJG-.js} +2 -2
  61. package/build/client/assets/{online-BrcRwzQC.js.map → online-CHlOuJG-.js.map} +1 -1
  62. package/build/client/assets/{preferences-DZYeWTq7.js → preferences-BmwlU5EC.js} +2 -2
  63. package/build/client/assets/{preferences-DZYeWTq7.js.map → preferences-BmwlU5EC.js.map} +1 -1
  64. package/build/client/assets/{presence-Dmt5LCeW.js → presence-CPOTHCHm.js} +2 -2
  65. package/build/client/assets/{presence-Dmt5LCeW.js.map → presence-CPOTHCHm.js.map} +1 -1
  66. package/build/client/assets/preview-B2BxDDhi.js +2 -0
  67. package/build/client/assets/preview-B2BxDDhi.js.map +1 -0
  68. package/build/client/assets/{product-CleOH5Nn.js → product-BkDgAOLQ.js} +2 -2
  69. package/build/client/assets/{product-CleOH5Nn.js.map → product-BkDgAOLQ.js.map} +1 -1
  70. package/build/client/assets/{progress-CpALgZbi.js → progress-CnHFlUmF.js} +2 -2
  71. package/build/client/assets/{progress-CpALgZbi.js.map → progress-CnHFlUmF.js.map} +1 -1
  72. package/build/client/assets/{progress-bar-IswLOt8e.js → progress-bar-Q9l2dtTg.js} +2 -2
  73. package/build/client/assets/{progress-bar-IswLOt8e.js.map → progress-bar-Q9l2dtTg.js.map} +1 -1
  74. package/build/client/assets/{revalidation-ws-CibzUlFP.js → revalidation-ws-CLolY6Iu.js} +2 -2
  75. package/build/client/assets/{revalidation-ws-CibzUlFP.js.map → revalidation-ws-CLolY6Iu.js.map} +1 -1
  76. package/build/client/assets/{root-ZN-l7RsB.js → root-DF5m7yW1.js} +3 -3
  77. package/build/client/assets/{root-ZN-l7RsB.js.map → root-DF5m7yW1.js.map} +1 -1
  78. package/build/client/assets/{set-playground-DBPp1Pek.js → set-playground-ZcPraYj5.js} +2 -2
  79. package/build/client/assets/{set-playground-DBPp1Pek.js.map → set-playground-ZcPraYj5.js.map} +1 -1
  80. package/build/client/assets/tailwind-O9k3JIDs.css +1 -0
  81. package/build/client/assets/test-Bt9AuCey.js +2 -0
  82. package/build/client/assets/{test-DGBB06nI.js.map → test-Bt9AuCey.js.map} +1 -1
  83. package/build/client/assets/{tests-B6AwzXv3.js → tests-CmjMQrMj.js} +2 -2
  84. package/build/client/assets/{tests-B6AwzXv3.js.map → tests-CmjMQrMj.js.map} +1 -1
  85. package/build/client/assets/{tooltip-CzrLrLJU.js → tooltip-leWCE50J.js} +2 -2
  86. package/build/client/assets/{tooltip-CzrLrLJU.js.map → tooltip-leWCE50J.js.map} +1 -1
  87. package/build/server/index.js +259 -108
  88. package/build/server/index.js.map +1 -1
  89. package/package.json +3 -3
  90. package/build/client/assets/_layout-DhhhwkhJ.js +0 -6
  91. package/build/client/assets/_layout-DhhhwkhJ.js.map +0 -1
  92. package/build/client/assets/_layout-cO4Dvl1j.js +0 -2
  93. package/build/client/assets/_layout-cO4Dvl1j.js.map +0 -1
  94. package/build/client/assets/app-DK_pEo6e.js +0 -2
  95. package/build/client/assets/button-DhtjxLl5.js +0 -2
  96. package/build/client/assets/diff-BrUTVi14.js +0 -2
  97. package/build/client/assets/discord-tUa_uzeh.js +0 -2
  98. package/build/client/assets/discord-tUa_uzeh.js.map +0 -1
  99. package/build/client/assets/preview-BUkOZv9x.js +0 -2
  100. package/build/client/assets/preview-BUkOZv9x.js.map +0 -1
  101. package/build/client/assets/tailwind-4klXLdJc.css +0 -1
  102. package/build/client/assets/test-DGBB06nI.js +0 -2
@@ -633,6 +633,18 @@ function useDebounce(callback, delay) {
633
633
  [delay]
634
634
  );
635
635
  }
636
+ function getExercisePath(exerciseNumber, suffix) {
637
+ const exerciseNumberStr = exerciseNumber.toString().padStart(2, "0");
638
+ if (!suffix) return `/exercise/${exerciseNumberStr}`;
639
+ return `/exercise/${exerciseNumberStr}/${suffix}`;
640
+ }
641
+ function getExerciseStepPath(exerciseNumber, stepNumber, type) {
642
+ const exerciseNumberStr = exerciseNumber.toString().padStart(2, "0");
643
+ if (!stepNumber) return `/exercise/${exerciseNumberStr}`;
644
+ const stepNumberStr = stepNumber.toString().padStart(2, "0");
645
+ if (!type) return `/exercise/${exerciseNumberStr}/${stepNumberStr}`;
646
+ return `/exercise/${exerciseNumberStr}/${stepNumberStr}/${type}`;
647
+ }
636
648
  function GeneralErrorBoundary({
637
649
  defaultStatusHandler = ({ error }) => /* @__PURE__ */ jsxs("p", { children: [
638
650
  error.status,
@@ -922,7 +934,7 @@ const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
922
934
  useTheme
923
935
  }, Symbol.toStringTag, { value: "Module" }));
924
936
  const appStylesheetUrl = "/assets/app-DGPT3Jy6.css";
925
- const tailwindStylesheetUrl = "/assets/tailwind-4klXLdJc.css";
937
+ const tailwindStylesheetUrl = "/assets/tailwind-O9k3JIDs.css";
926
938
  const cookieName = "EpicShop_confetti";
927
939
  function getConfetti(request) {
928
940
  const cookieHeader = request.headers.get("cookie");
@@ -1986,18 +1998,21 @@ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
1986
1998
  useRequireEpicProgress
1987
1999
  }, Symbol.toStringTag, { value: "Module" }));
1988
2000
  async function loader$w({ request }) {
1989
- var _a, _b;
2001
+ var _a;
1990
2002
  const timings = makeTimings("appLayoutLoader");
1991
2003
  const { title: workshopTitle } = getWorkshopConfig();
1992
2004
  const [exercises, playgroundAppName] = await Promise.all([
1993
2005
  getExercises({ request, timings }),
1994
2006
  getPlaygroundAppName()
1995
2007
  ]);
2008
+ const playgroundNumbersAndType = extractNumbersAndTypeFromAppNameOrPath(
2009
+ playgroundAppName ?? ""
2010
+ );
1996
2011
  const playground = {
1997
2012
  appName: playgroundAppName,
1998
- exerciseNumber: Number(
1999
- (_a = extractNumbersAndTypeFromAppNameOrPath(playgroundAppName ?? "")) == null ? void 0 : _a.exerciseNumber
2000
- )
2013
+ exerciseNumber: Number(playgroundNumbersAndType == null ? void 0 : playgroundNumbersAndType.exerciseNumber),
2014
+ stepNumber: Number(playgroundNumbersAndType == null ? void 0 : playgroundNumbersAndType.stepNumber),
2015
+ type: playgroundNumbersAndType == null ? void 0 : playgroundNumbersAndType.type
2001
2016
  };
2002
2017
  const result = unstable_data$1(
2003
2018
  {
@@ -2018,11 +2033,13 @@ async function loader$w({ request }) {
2018
2033
  steps: e.steps.map(({ stepNumber, problem, solution }) => ({
2019
2034
  stepNumber,
2020
2035
  title: (problem == null ? void 0 : problem.title) ?? (solution == null ? void 0 : solution.title) ?? "Unknown",
2021
- name: (problem == null ? void 0 : problem.name) ?? (solution == null ? void 0 : solution.name) ?? "Unknown"
2036
+ name: (problem == null ? void 0 : problem.name) ?? (solution == null ? void 0 : solution.name) ?? "Unknown",
2037
+ problem: problem ? { name: problem.name, title: problem.title } : null,
2038
+ solution: solution ? { name: solution.name, title: solution.title } : null
2022
2039
  }))
2023
2040
  })),
2024
2041
  playground,
2025
- isMenuOpened: ((_b = request.headers.get("cookie")) == null ? void 0 : _b.includes("es_menu_open=true")) ?? false
2042
+ isMenuOpened: ((_a = request.headers.get("cookie")) == null ? void 0 : _a.includes("es_menu_open=true")) ?? false
2026
2043
  },
2027
2044
  {
2028
2045
  headers: {
@@ -2374,7 +2391,7 @@ function NavigationExerciseListItem({
2374
2391
  "py-[6px] first:pt-3 last:pb-3",
2375
2392
  progressClassName ? `${progressClassName} before:border-t` : null
2376
2393
  ),
2377
- children: /* @__PURE__ */ jsx("span", { className: "ml-2", children })
2394
+ children: /* @__PURE__ */ jsx("span", { className: "inline-block pl-2", children })
2378
2395
  }
2379
2396
  );
2380
2397
  }
@@ -2392,7 +2409,7 @@ function NavigationExerciseStepListItem({
2392
2409
  "py-[6px] first:pt-3 last:pb-3",
2393
2410
  progressClassName ? `${progressClassName} before:border-t` : null
2394
2411
  ),
2395
- children: /* @__PURE__ */ jsx("span", { className: "ml-2", children })
2412
+ children: /* @__PURE__ */ jsx("span", { className: "inline-block pl-2", children })
2396
2413
  }
2397
2414
  );
2398
2415
  }
@@ -2466,35 +2483,45 @@ function MobileNavigation({
2466
2483
  data2.exercises.map(({ exerciseNumber, title, steps }) => {
2467
2484
  const isActive = Number(params.exerciseNumber) === exerciseNumber;
2468
2485
  const showPlayground = !isActive && data2.playground.exerciseNumber === exerciseNumber;
2469
- const exerciseNum = exerciseNumber.toString().padStart(2, "0");
2470
2486
  return /* @__PURE__ */ jsxs(
2471
2487
  NavigationExerciseListItem,
2472
2488
  {
2473
2489
  exerciseNumber,
2474
2490
  children: [
2475
- /* @__PURE__ */ jsxs(
2476
- Link,
2477
- {
2478
- prefetch: "intent",
2479
- to: `/${exerciseNum}`,
2480
- className: clsx(
2481
- "relative whitespace-nowrap px-2 py-0.5 pr-3 text-2xl font-bold outline-none hover:underline focus:underline",
2482
- 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2483
- { "bg-foreground text-background": isActive }
2484
- ),
2485
- children: [
2486
- title,
2487
- showPlayground ? " 🛝" : null
2488
- ]
2489
- }
2490
- ),
2491
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-2xl font-bold", children: [
2492
+ /* @__PURE__ */ jsx(
2493
+ Link,
2494
+ {
2495
+ prefetch: "intent",
2496
+ to: getExercisePath(exerciseNumber),
2497
+ className: clsx(
2498
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2499
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2500
+ { "bg-foreground text-background": isActive }
2501
+ ),
2502
+ children: title
2503
+ }
2504
+ ),
2505
+ showPlayground ? /* @__PURE__ */ jsx(
2506
+ Link,
2507
+ {
2508
+ to: getExerciseStepPath(
2509
+ data2.playground.exerciseNumber,
2510
+ data2.playground.stepNumber,
2511
+ data2.playground.type
2512
+ ),
2513
+ prefetch: "intent",
2514
+ children: "🛝"
2515
+ }
2516
+ ) : null
2517
+ ] }),
2491
2518
  isActive ? /* @__PURE__ */ jsxs(
2492
2519
  motion.ul,
2493
2520
  {
2494
2521
  variants: listVariants,
2495
2522
  initial: "hidden",
2496
2523
  animate: "visible",
2497
- className: "ml-4 mt-4 flex flex-col",
2524
+ className: "ml-4 mt-2 flex flex-col",
2498
2525
  children: [
2499
2526
  /* @__PURE__ */ jsx(
2500
2527
  NavigationExerciseStepListItem,
@@ -2504,7 +2531,7 @@ function MobileNavigation({
2504
2531
  children: /* @__PURE__ */ jsx(
2505
2532
  Link,
2506
2533
  {
2507
- to: `/${exerciseNum}`,
2534
+ to: getExercisePath(exerciseNumber),
2508
2535
  prefetch: "intent",
2509
2536
  className: clsx(
2510
2537
  'relative whitespace-nowrap px-2 py-0.5 pr-3 text-xl font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
@@ -2518,30 +2545,78 @@ function MobileNavigation({
2518
2545
  },
2519
2546
  exerciseNumber
2520
2547
  ),
2521
- steps.filter(Boolean).map(({ name, stepNumber, title: title2 }) => {
2522
- const isActive2 = Number(params.stepNumber) === stepNumber;
2523
- const step = stepNumber.toString().padStart(2, "0");
2524
- const isPlayground = name === data2.playground.appName;
2548
+ steps.filter(Boolean).map(({ stepNumber, title: title2, problem, solution }) => {
2525
2549
  return /* @__PURE__ */ jsx(
2526
2550
  NavigationExerciseStepListItem,
2527
2551
  {
2528
2552
  type: "step",
2529
2553
  stepNumber,
2530
2554
  exerciseNumber,
2531
- children: /* @__PURE__ */ jsx(
2532
- Link,
2533
- {
2534
- to: `/${exerciseNum}/${step}`,
2535
- prefetch: "intent",
2536
- className: clsx(
2537
- 'relative whitespace-nowrap px-2 py-0.5 pr-3 text-xl font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2555
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
2556
+ /* @__PURE__ */ jsxs(
2557
+ Link,
2558
+ {
2559
+ to: getExerciseStepPath(
2560
+ exerciseNumber,
2561
+ stepNumber
2562
+ ),
2563
+ prefetch: "intent",
2564
+ className: "font-semibold leading-tight",
2565
+ children: [
2566
+ stepNumber.toString().padStart(2, "0"),
2567
+ ".",
2568
+ " ",
2569
+ title2
2570
+ ]
2571
+ }
2572
+ ),
2573
+ /* @__PURE__ */ jsxs("div", { className: "ml-3 mt-0.5 flex gap-1", children: [
2574
+ problem && /* @__PURE__ */ jsxs(
2575
+ NavLink,
2538
2576
  {
2539
- "bg-foreground text-background": isActive2
2577
+ to: getExerciseStepPath(
2578
+ exerciseNumber,
2579
+ stepNumber,
2580
+ "problem"
2581
+ ),
2582
+ prefetch: "intent",
2583
+ className: ({ isActive: isActive2 }) => clsx(
2584
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2585
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2586
+ {
2587
+ "bg-foreground text-background": isActive2
2588
+ }
2589
+ ),
2590
+ children: [
2591
+ "Problem",
2592
+ problem.name === data2.playground.appName ? " 🛝" : ""
2593
+ ]
2540
2594
  }
2541
2595
  ),
2542
- children: isPlayground ? `${step}. ${title2} 🛝` : `${step}. ${title2}`
2543
- }
2544
- )
2596
+ solution && /* @__PURE__ */ jsxs(
2597
+ NavLink,
2598
+ {
2599
+ to: getExerciseStepPath(
2600
+ exerciseNumber,
2601
+ stepNumber,
2602
+ "solution"
2603
+ ),
2604
+ prefetch: "intent",
2605
+ className: ({ isActive: isActive2 }) => clsx(
2606
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2607
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2608
+ {
2609
+ "bg-foreground text-background": isActive2
2610
+ }
2611
+ ),
2612
+ children: [
2613
+ "Solution",
2614
+ solution.name === data2.playground.appName ? " 🛝" : ""
2615
+ ]
2616
+ }
2617
+ )
2618
+ ] })
2619
+ ] })
2545
2620
  },
2546
2621
  stepNumber
2547
2622
  );
@@ -2554,7 +2629,7 @@ function MobileNavigation({
2554
2629
  children: /* @__PURE__ */ jsx(
2555
2630
  NavLink,
2556
2631
  {
2557
- to: `/${exerciseNum}/finished`,
2632
+ to: getExercisePath(exerciseNumber, "finished"),
2558
2633
  prefetch: "intent",
2559
2634
  className: ({ isActive: isActive2 }) => clsx(
2560
2635
  'relative whitespace-nowrap px-2 py-0.5 pr-3 text-base font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
@@ -2738,7 +2813,6 @@ function Navigation({
2738
2813
  opacity: 0
2739
2814
  }
2740
2815
  };
2741
- const exNum = Number(params.exerciseNumber).toString().padStart(2, "0");
2742
2816
  return /* @__PURE__ */ jsx("nav", { className: "hidden border-r sm:flex", children: /* @__PURE__ */ jsx(
2743
2817
  motion.div,
2744
2818
  {
@@ -2787,35 +2861,45 @@ function Navigation({
2787
2861
  data2.exercises.map(({ exerciseNumber, title, steps }) => {
2788
2862
  const isActive = Number(params.exerciseNumber) === exerciseNumber;
2789
2863
  const showPlayground = !isActive && data2.playground.exerciseNumber === exerciseNumber;
2790
- const exerciseNum = exerciseNumber.toString().padStart(2, "0");
2791
2864
  return /* @__PURE__ */ jsxs(
2792
2865
  NavigationExerciseListItem,
2793
2866
  {
2794
2867
  exerciseNumber,
2795
2868
  children: [
2796
- /* @__PURE__ */ jsxs(
2797
- Link,
2798
- {
2799
- prefetch: "intent",
2800
- to: `/${exerciseNum}`,
2801
- className: clsx(
2802
- "relative whitespace-nowrap px-2 py-0.5 pr-3 text-2xl font-bold outline-none hover:underline focus:underline",
2803
- 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2804
- { "bg-foreground text-background": isActive }
2805
- ),
2806
- children: [
2807
- title,
2808
- showPlayground ? " 🛝" : null
2809
- ]
2810
- }
2811
- ),
2869
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 text-2xl font-bold", children: [
2870
+ /* @__PURE__ */ jsx(
2871
+ Link,
2872
+ {
2873
+ prefetch: "intent",
2874
+ to: getExercisePath(exerciseNumber),
2875
+ className: clsx(
2876
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2877
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2878
+ { "bg-foreground text-background": isActive }
2879
+ ),
2880
+ children: title
2881
+ }
2882
+ ),
2883
+ showPlayground ? /* @__PURE__ */ jsx(
2884
+ Link,
2885
+ {
2886
+ to: getExerciseStepPath(
2887
+ data2.playground.exerciseNumber,
2888
+ data2.playground.stepNumber,
2889
+ data2.playground.type
2890
+ ),
2891
+ prefetch: "intent",
2892
+ children: "🛝"
2893
+ }
2894
+ ) : null
2895
+ ] }),
2812
2896
  isActive ? /* @__PURE__ */ jsxs(
2813
2897
  motion.ul,
2814
2898
  {
2815
2899
  variants: listVariants,
2816
2900
  initial: "hidden",
2817
2901
  animate: "visible",
2818
- className: "ml-4 mt-4 flex flex-col",
2902
+ className: "ml-4 mt-2 flex flex-col",
2819
2903
  children: [
2820
2904
  /* @__PURE__ */ jsx(
2821
2905
  NavigationExerciseStepListItem,
@@ -2825,7 +2909,7 @@ function Navigation({
2825
2909
  children: /* @__PURE__ */ jsx(
2826
2910
  Link,
2827
2911
  {
2828
- to: `/${exerciseNum}`,
2912
+ to: getExercisePath(exerciseNumber),
2829
2913
  prefetch: "intent",
2830
2914
  className: clsx(
2831
2915
  'relative whitespace-nowrap px-2 py-0.5 pr-3 text-xl font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
@@ -2839,30 +2923,78 @@ function Navigation({
2839
2923
  },
2840
2924
  exerciseNumber
2841
2925
  ),
2842
- steps.filter(Boolean).map(({ name, stepNumber, title: title2 }) => {
2843
- const isActive2 = Number(params.stepNumber) === stepNumber;
2844
- const step = stepNumber.toString().padStart(2, "0");
2845
- const isPlayground = name === data2.playground.appName;
2926
+ steps.filter(Boolean).map(({ stepNumber, title: title2, problem, solution }) => {
2846
2927
  return /* @__PURE__ */ jsx(
2847
2928
  NavigationExerciseStepListItem,
2848
2929
  {
2849
2930
  type: "step",
2850
2931
  stepNumber,
2851
2932
  exerciseNumber,
2852
- children: /* @__PURE__ */ jsx(
2853
- Link,
2854
- {
2855
- to: `/${exerciseNum}/${step}`,
2856
- prefetch: "intent",
2857
- className: clsx(
2858
- 'relative whitespace-nowrap px-2 py-0.5 pr-3 text-xl font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2933
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
2934
+ /* @__PURE__ */ jsxs(
2935
+ Link,
2936
+ {
2937
+ to: getExerciseStepPath(
2938
+ exerciseNumber,
2939
+ stepNumber
2940
+ ),
2941
+ prefetch: "intent",
2942
+ className: "font-semibold leading-tight",
2943
+ children: [
2944
+ stepNumber.toString().padStart(2, "0"),
2945
+ ".",
2946
+ " ",
2947
+ title2
2948
+ ]
2949
+ }
2950
+ ),
2951
+ /* @__PURE__ */ jsxs("div", { className: "ml-3 mt-0.5 flex gap-1", children: [
2952
+ problem && /* @__PURE__ */ jsxs(
2953
+ NavLink,
2859
2954
  {
2860
- "bg-foreground text-background": isActive2
2955
+ to: getExerciseStepPath(
2956
+ exerciseNumber,
2957
+ stepNumber,
2958
+ "problem"
2959
+ ),
2960
+ prefetch: "intent",
2961
+ className: ({ isActive: isActive2 }) => clsx(
2962
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2963
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2964
+ {
2965
+ "bg-foreground text-background": isActive2
2966
+ }
2967
+ ),
2968
+ children: [
2969
+ "Problem",
2970
+ problem.name === data2.playground.appName ? " 🛝" : ""
2971
+ ]
2861
2972
  }
2862
2973
  ),
2863
- children: isPlayground ? `${step}. ${title2} 🛝` : `${step}. ${title2}`
2864
- }
2865
- )
2974
+ solution && /* @__PURE__ */ jsxs(
2975
+ NavLink,
2976
+ {
2977
+ to: getExerciseStepPath(
2978
+ exerciseNumber,
2979
+ stepNumber,
2980
+ "solution"
2981
+ ),
2982
+ prefetch: "intent",
2983
+ className: ({ isActive: isActive2 }) => clsx(
2984
+ "relative whitespace-nowrap px-2 py-0.5 pr-3 outline-none hover:underline focus:underline",
2985
+ 'after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
2986
+ {
2987
+ "bg-foreground text-background": isActive2
2988
+ }
2989
+ ),
2990
+ children: [
2991
+ "Solution",
2992
+ solution.name === data2.playground.appName ? " 🛝" : ""
2993
+ ]
2994
+ }
2995
+ )
2996
+ ] })
2997
+ ] })
2866
2998
  },
2867
2999
  stepNumber
2868
3000
  );
@@ -2875,7 +3007,7 @@ function Navigation({
2875
3007
  children: /* @__PURE__ */ jsx(
2876
3008
  NavLink,
2877
3009
  {
2878
- to: `/${exerciseNum}/finished`,
3010
+ to: getExercisePath(exerciseNumber, "finished"),
2879
3011
  prefetch: "intent",
2880
3012
  className: ({ isActive: isActive2 }) => clsx(
2881
3013
  'relative whitespace-nowrap px-2 py-0.5 pr-3 text-base font-medium outline-none after:absolute after:-bottom-2.5 after:-right-2.5 after:h-5 after:w-5 after:rotate-45 after:scale-75 after:bg-background after:content-[""] hover:underline focus:underline',
@@ -2916,12 +3048,15 @@ function Navigation({
2916
3048
  }
2917
3049
  ),
2918
3050
  !isMenuOpened && /* @__PURE__ */ jsx("div", { className: "flex flex-grow flex-col justify-center", children: /* @__PURE__ */ jsxs("div", { className: "orientation-sideways w-full font-mono text-sm font-medium uppercase leading-none", children: [
2919
- (exercise == null ? void 0 : exercise.title) ? /* @__PURE__ */ jsx(Link, { to: `/${exNum}`, children: exercise.title }) : null,
3051
+ (exercise == null ? void 0 : exercise.title) ? /* @__PURE__ */ jsx(Link, { to: getExercisePath(Number(params.exerciseNumber)), children: exercise.title }) : null,
2920
3052
  (exercise == null ? void 0 : exercise.title) && (app == null ? void 0 : app.title) ? " — " : null,
2921
3053
  (app == null ? void 0 : app.title) ? /* @__PURE__ */ jsx(
2922
3054
  Link,
2923
3055
  {
2924
- to: `/${exNum}/${app.stepNumber.toString().padStart(2, "0")}`,
3056
+ to: getExerciseStepPath(
3057
+ Number(params.exerciseNumber),
3058
+ app.stepNumber
3059
+ ),
2925
3060
  children: app.title
2926
3061
  }
2927
3062
  ) : null
@@ -3182,6 +3317,12 @@ function ButtonLink({
3182
3317
  }
3183
3318
  ) });
3184
3319
  }
3320
+ function LinkButton({
3321
+ className,
3322
+ ...props
3323
+ }) {
3324
+ return /* @__PURE__ */ jsx("button", { ...props, className: clsx("underline", className) });
3325
+ }
3185
3326
  const handle$9 = {
3186
3327
  getSitemapEntries: () => null
3187
3328
  };
@@ -6461,7 +6602,7 @@ function ExercisePartRoute$1() {
6461
6602
  /* @__PURE__ */ jsxs(
6462
6603
  Link,
6463
6604
  {
6464
- to: `/${titleBits.exerciseNumber}`,
6605
+ to: getExercisePath(data2.exerciseStepApp.exerciseNumber),
6465
6606
  className: "hover:underline",
6466
6607
  children: [
6467
6608
  titleBits.exerciseNumber,
@@ -6765,30 +6906,40 @@ const InBrowserBrowser = forwardRef(
6765
6906
  );
6766
6907
  function InBrowserBrowserImpl({ name, port, portIsAvailable, isRunning, baseUrl, id, initialRoute }, ref) {
6767
6908
  const requestInfo = useRequestInfo();
6768
- return isRunning ? /* @__PURE__ */ jsx(
6769
- InBrowserBrowserForRealz,
6770
- {
6771
- baseUrl,
6772
- id,
6773
- name,
6774
- ref,
6775
- initialRoute
6776
- }
6777
- ) : portIsAvailable === false ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center", children: [
6778
- /* @__PURE__ */ jsxs("p", { className: "max-w-xs pb-5 text-center", role: "status", children: [
6779
- `The port for this app is unavailable. It could be that you're running it `,
6780
- /* @__PURE__ */ jsx(
6781
- "a",
6782
- {
6783
- href: getBaseUrl({ domain: requestInfo.domain, port }),
6784
- className: "underline",
6785
- children: "elsewhere"
6786
- }
6787
- ),
6788
- "?"
6789
- ] }),
6790
- /* @__PURE__ */ jsx(PortStopper, { port })
6791
- ] }) : /* @__PURE__ */ jsx(AppStarter, { name });
6909
+ const [showUnmanaged, setShowUnmanaged] = useState(false);
6910
+ if (isRunning || showUnmanaged) {
6911
+ return /* @__PURE__ */ jsx(
6912
+ InBrowserBrowserForRealz,
6913
+ {
6914
+ baseUrl,
6915
+ id,
6916
+ name,
6917
+ ref,
6918
+ initialRoute
6919
+ }
6920
+ );
6921
+ } else if (portIsAvailable === false) {
6922
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center", children: [
6923
+ /* @__PURE__ */ jsxs("p", { className: "max-w-xs pb-5 text-center", role: "status", children: [
6924
+ `The port for this app is unavailable. It could be that you're running it `,
6925
+ /* @__PURE__ */ jsx(
6926
+ "a",
6927
+ {
6928
+ href: getBaseUrl({ domain: requestInfo.domain, port }),
6929
+ className: "underline",
6930
+ target: "_blank",
6931
+ rel: "noreferrer",
6932
+ children: "elsewhere"
6933
+ }
6934
+ ),
6935
+ ". ",
6936
+ /* @__PURE__ */ jsx(LinkButton, { onClick: () => setShowUnmanaged(true), children: "Show here anyway" })
6937
+ ] }),
6938
+ /* @__PURE__ */ jsx(PortStopper, { port })
6939
+ ] });
6940
+ } else {
6941
+ return /* @__PURE__ */ jsx(AppStarter, { name });
6942
+ }
6792
6943
  }
6793
6944
  const InBrowserBrowserForRealz = forwardRef(InBrowserBrowserForRealzImpl);
6794
6945
  function InBrowserBrowserForRealzImpl({ baseUrl, id, name, initialRoute }, ref) {
@@ -10823,7 +10974,7 @@ const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
10823
10974
  __proto__: null,
10824
10975
  loader
10825
10976
  }, Symbol.toStringTag, { value: "Module" }));
10826
- const serverManifest = { "entry": { "module": "/assets/entry.client-CQusg5Iz.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.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-ZN-l7RsB.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/pe-DXT2FOp1.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/progress-bar-IswLOt8e.js", "/assets/index-CB8bjE90.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-BOO5UotZ.js", "/assets/presence-Dmt5LCeW.js", "/assets/seo-pBpFCWsy.js", "/assets/online-BrcRwzQC.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/_-BbjJ9R-5.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.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-DhhhwkhJ.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/pe-DXT2FOp1.js", "/assets/product-CleOH5Nn.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-CWadM2q_.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/online-BrcRwzQC.js", "/assets/presence-Dmt5LCeW.js", "/assets/progress-CpALgZbi.js", "/assets/index-BOO5UotZ.js", "/assets/components-DrvY4pal.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-C4MWGVQU.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.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": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-tUa_uzeh.js", "imports": ["/assets/discord-DsGCI_e6.js", "/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-CwTidn3v.js", "imports": ["/assets/index-CGzylDPY.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-Bd4c2v-C.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DoUlMEIW.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/mdx-Ce3knRHx.js", "/assets/progress-CpALgZbi.js", "/assets/misc-D9k1wGip.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BOO5UotZ.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.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-CZKDy98j.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/components-DrvY4pal.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-cO4Dvl1j.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/mdx-Ce3knRHx.js", "/assets/progress-CpALgZbi.js", "/assets/set-playground-DBPp1Pek.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-D9k1wGip.js", "/assets/epic-video-DoUlMEIW.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-BOO5UotZ.js", "/assets/components-DrvY4pal.js", "/assets/index-CWadM2q_.js", "/assets/progress-bar-IswLOt8e.js", "/assets/pe-DXT2FOp1.js", "/assets/index-D7-ne3iG.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-DK_pEo6e.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/preview-BUkOZv9x.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/index-BOO5UotZ.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/button-DhtjxLl5.js", "/assets/loading-D4V_nJZr.js", "/assets/progress-bar-IswLOt8e.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-BpZ0TCe-.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-D7-ne3iG.js", "/assets/misc-D9k1wGip.js", "/assets/diff-DI-wBaTF.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/loading-D4V_nJZr.js", "/assets/discord-DsGCI_e6.js", "/assets/online-BrcRwzQC.js", "/assets/components-DrvY4pal.js", "/assets/index-CB8bjE90.js", "/assets/set-playground-DBPp1Pek.js", "/assets/tests-B6AwzXv3.js", "/assets/preview-BUkOZv9x.js", "/assets/index-CWadM2q_.js", "/assets/accordion-BL_cX9y6.js", "/assets/mdx-Ce3knRHx.js", "/assets/epic-video-DoUlMEIW.js", "/assets/index-BOO5UotZ.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DhtjxLl5.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-DGBB06nI.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tests-B6AwzXv3.js", "/assets/components-DrvY4pal.js", "/assets/epic-video-DoUlMEIW.js", "/assets/index-BOO5UotZ.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/accordion-BL_cX9y6.js", "/assets/index-D7-ne3iG.js", "/assets/index-CWadM2q_.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/set-playground-DBPp1Pek.js", "/assets/progress-bar-IswLOt8e.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-LvfViAKb.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DoUlMEIW.js", "/assets/misc-D9k1wGip.js", "/assets/loading-D4V_nJZr.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/mdx-Ce3knRHx.js", "/assets/progress-CpALgZbi.js", "/assets/index-BOO5UotZ.js", "/assets/online-BrcRwzQC.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/pe-DXT2FOp1.js", "/assets/tooltip-CzrLrLJU.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-y90Pn48k.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DoUlMEIW.js", "/assets/misc-D9k1wGip.js", "/assets/loading-D4V_nJZr.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/revalidation-ws-CibzUlFP.js", "/assets/mdx-Ce3knRHx.js", "/assets/online-BrcRwzQC.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-CpALgZbi.js", "/assets/index-BOO5UotZ.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/pe-DXT2FOp1.js", "/assets/tooltip-CzrLrLJU.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-De6oiBJI.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DoUlMEIW.js", "/assets/error-boundary-DBVB3BBH.js", "/assets/mdx-Ce3knRHx.js", "/assets/misc-D9k1wGip.js", "/assets/progress-CpALgZbi.js", "/assets/components-DrvY4pal.js", "/assets/index-BOO5UotZ.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.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-DiEHnGfv.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DhtjxLl5.js", "/assets/loading-D4V_nJZr.js", "/assets/product-CleOH5Nn.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/index-BOO5UotZ.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/preferences-DZYeWTq7.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/components-DrvY4pal.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-CW3-Iilk.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DV29dlKr.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.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/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-BH_SsYHe.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/tooltip-CzrLrLJU.js", "/assets/progress-CpALgZbi.js", "/assets/components-DrvY4pal.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-D61Qvt0X.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "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-BrUTVi14.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-D9k1wGip.js", "/assets/diff-DI-wBaTF.js", "/assets/nav-chevrons-CM-frhig.js", "/assets/components-DrvY4pal.js", "/assets/accordion-BL_cX9y6.js", "/assets/tooltip-CzrLrLJU.js", "/assets/index-D7-ne3iG.js", "/assets/index-CWadM2q_.js", "/assets/mdx-Ce3knRHx.js", "/assets/epic-video-DoUlMEIW.js", "/assets/index-BOO5UotZ.js", "/assets/pe-DXT2FOp1.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-IswLOt8e.js", "/assets/revalidation-ws-CibzUlFP.js"], "css": ["/assets/epic-video-DUnRvy1A.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-Dnb9KzTs.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DhtjxLl5.js", "/assets/epic-video-DoUlMEIW.js", "/assets/components-DrvY4pal.js", "/assets/misc-D9k1wGip.js", "/assets/index-BOO5UotZ.js", "/assets/tooltip-CzrLrLJU.js", "/assets/pe-DXT2FOp1.js", "/assets/online-BrcRwzQC.js", "/assets/loading-D4V_nJZr.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-2ba0f4a0.js", "version": "2ba0f4a0" };
10977
+ const serverManifest = { "entry": { "module": "/assets/entry.client-CQusg5Iz.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.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-DF5m7yW1.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js", "/assets/misc-BK2EiKtY.js", "/assets/pe-DXT2FOp1.js", "/assets/error-boundary-De7jJlR5.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/index-CB8bjE90.js", "/assets/tooltip-leWCE50J.js", "/assets/index-BZWIdOoA.js", "/assets/presence-CPOTHCHm.js", "/assets/seo-pBpFCWsy.js", "/assets/online-CHlOuJG-.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/_-BDcQ_M2J.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/error-boundary-De7jJlR5.js", "/assets/misc-BK2EiKtY.js", "/assets/components-DrvY4pal.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-DuDUPWax.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BK2EiKtY.js", "/assets/pe-DXT2FOp1.js", "/assets/product-BkDgAOLQ.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/tooltip-leWCE50J.js", "/assets/index-BE3KRz8n.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/online-CHlOuJG-.js", "/assets/presence-CPOTHCHm.js", "/assets/progress-CnHFlUmF.js", "/assets/index-BZWIdOoA.js", "/assets/components-DrvY4pal.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-BwQvf4AS.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DVPKzWkn.js", "/assets/misc-BK2EiKtY.js", "/assets/tooltip-leWCE50J.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.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": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-CFZUT74L.js", "imports": ["/assets/discord-CoBo5eVK.js", "/assets/index-CGzylDPY.js", "/assets/misc-BK2EiKtY.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-CwTidn3v.js", "imports": ["/assets/index-CGzylDPY.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-CG2AFTtQ.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DRZssA4U.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/mdx-Z4bEoKXn.js", "/assets/progress-CnHFlUmF.js", "/assets/misc-BK2EiKtY.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BZWIdOoA.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.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-COWC332q.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BK2EiKtY.js", "/assets/components-DrvY4pal.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-DKC1JUTc.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/error-boundary-De7jJlR5.js", "/assets/nav-chevrons-DVD_0i2a.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/mdx-Z4bEoKXn.js", "/assets/progress-CnHFlUmF.js", "/assets/set-playground-ZcPraYj5.js", "/assets/misc-BK2EiKtY.js", "/assets/seo-pBpFCWsy.js", "/assets/epic-video-DRZssA4U.js", "/assets/tooltip-leWCE50J.js", "/assets/index-BZWIdOoA.js", "/assets/components-DrvY4pal.js", "/assets/index-BE3KRz8n.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/pe-DXT2FOp1.js", "/assets/index-6Hu4Lmzn.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-XHqxOZfy.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/preview-B2BxDDhi.js", "/assets/components-DrvY4pal.js", "/assets/misc-BK2EiKtY.js", "/assets/index-BZWIdOoA.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js", "/assets/button-DVPKzWkn.js", "/assets/loading-ClL22bF9.js", "/assets/progress-bar-Q9l2dtTg.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-M647UyZv.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tooltip-leWCE50J.js", "/assets/index-6Hu4Lmzn.js", "/assets/misc-BK2EiKtY.js", "/assets/diff-C7Zh3uuA.js", "/assets/error-boundary-De7jJlR5.js", "/assets/loading-ClL22bF9.js", "/assets/discord-CoBo5eVK.js", "/assets/online-CHlOuJG-.js", "/assets/components-DrvY4pal.js", "/assets/index-CB8bjE90.js", "/assets/set-playground-ZcPraYj5.js", "/assets/tests-CmjMQrMj.js", "/assets/preview-B2BxDDhi.js", "/assets/index-BE3KRz8n.js", "/assets/accordion-BPyhq471.js", "/assets/mdx-Z4bEoKXn.js", "/assets/epic-video-DRZssA4U.js", "/assets/index-BZWIdOoA.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DVPKzWkn.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-Bt9AuCey.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tests-CmjMQrMj.js", "/assets/components-DrvY4pal.js", "/assets/epic-video-DRZssA4U.js", "/assets/index-BZWIdOoA.js", "/assets/misc-BK2EiKtY.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/accordion-BPyhq471.js", "/assets/index-6Hu4Lmzn.js", "/assets/index-BE3KRz8n.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/set-playground-ZcPraYj5.js", "/assets/progress-bar-Q9l2dtTg.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-BgGBYU74.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DRZssA4U.js", "/assets/misc-BK2EiKtY.js", "/assets/loading-ClL22bF9.js", "/assets/nav-chevrons-DVD_0i2a.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/mdx-Z4bEoKXn.js", "/assets/progress-CnHFlUmF.js", "/assets/index-BZWIdOoA.js", "/assets/online-CHlOuJG-.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/pe-DXT2FOp1.js", "/assets/tooltip-leWCE50J.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-6JNE1a1E.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DRZssA4U.js", "/assets/misc-BK2EiKtY.js", "/assets/loading-ClL22bF9.js", "/assets/nav-chevrons-DVD_0i2a.js", "/assets/revalidation-ws-CLolY6Iu.js", "/assets/mdx-Z4bEoKXn.js", "/assets/online-CHlOuJG-.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-CnHFlUmF.js", "/assets/index-BZWIdOoA.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/pe-DXT2FOp1.js", "/assets/tooltip-leWCE50J.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-CyFsiCNp.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-DRZssA4U.js", "/assets/error-boundary-De7jJlR5.js", "/assets/mdx-Z4bEoKXn.js", "/assets/misc-BK2EiKtY.js", "/assets/progress-CnHFlUmF.js", "/assets/components-DrvY4pal.js", "/assets/index-BZWIdOoA.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.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-C3I5NCrj.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-DVPKzWkn.js", "/assets/loading-ClL22bF9.js", "/assets/product-BkDgAOLQ.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/index-BZWIdOoA.js", "/assets/components-DrvY4pal.js", "/assets/misc-BK2EiKtY.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/preferences-BmwlU5EC.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DVPKzWkn.js", "/assets/misc-BK2EiKtY.js", "/assets/tooltip-leWCE50J.js", "/assets/components-DrvY4pal.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-CW3-Iilk.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DV29dlKr.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.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/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-Cnxrq9Ny.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BK2EiKtY.js", "/assets/tooltip-leWCE50J.js", "/assets/progress-CnHFlUmF.js", "/assets/components-DrvY4pal.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-D61Qvt0X.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "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-DVOUmaq6.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BK2EiKtY.js", "/assets/diff-C7Zh3uuA.js", "/assets/nav-chevrons-DVD_0i2a.js", "/assets/components-DrvY4pal.js", "/assets/accordion-BPyhq471.js", "/assets/tooltip-leWCE50J.js", "/assets/index-6Hu4Lmzn.js", "/assets/index-BE3KRz8n.js", "/assets/mdx-Z4bEoKXn.js", "/assets/epic-video-DRZssA4U.js", "/assets/index-BZWIdOoA.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-Q9l2dtTg.js", "/assets/revalidation-ws-CLolY6Iu.js"], "css": ["/assets/epic-video-DUnRvy1A.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-DjyKxkKx.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-DVPKzWkn.js", "/assets/epic-video-DRZssA4U.js", "/assets/components-DrvY4pal.js", "/assets/misc-BK2EiKtY.js", "/assets/index-BZWIdOoA.js", "/assets/tooltip-leWCE50J.js", "/assets/pe-DXT2FOp1.js", "/assets/online-CHlOuJG-.js", "/assets/loading-ClL22bF9.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.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-a58be1e7.js", "version": "a58be1e7" };
10827
10978
  const mode = "production";
10828
10979
  const assetsBuildDirectory = "build/client";
10829
10980
  const basename = "/";