@epic-web/workshop-app 4.26.1 → 4.27.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 (52) hide show
  1. package/build/client/assets/{_exerciseNumber-B_1LTOMl.js → _exerciseNumber-DeMmiDU5.js} +2 -2
  2. package/build/client/assets/{_exerciseNumber-B_1LTOMl.js.map → _exerciseNumber-DeMmiDU5.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber_.finished-DHl9ou1s.js → _exerciseNumber_.finished-DM5HZX6r.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber_.finished-DHl9ou1s.js.map → _exerciseNumber_.finished-DM5HZX6r.js.map} +1 -1
  5. package/build/client/assets/{_layout-TpI4uc69.js → _layout-5idP3Bqx.js} +2 -2
  6. package/build/client/assets/{_layout-TpI4uc69.js.map → _layout-5idP3Bqx.js.map} +1 -1
  7. package/build/client/assets/{_layout-CksyTzND.js → _layout-DkGEbcMk.js} +2 -2
  8. package/build/client/assets/{_layout-CksyTzND.js.map → _layout-DkGEbcMk.js.map} +1 -1
  9. package/build/client/assets/{account-DWhUP9x5.js → account-D1DCJCnR.js} +2 -2
  10. package/build/client/assets/{account-DWhUP9x5.js.map → account-D1DCJCnR.js.map} +1 -1
  11. package/build/client/assets/{diff-CKxYA_sC.js → diff-CU8At1c4.js} +2 -2
  12. package/build/client/assets/{diff-CKxYA_sC.js.map → diff-CU8At1c4.js.map} +1 -1
  13. package/build/client/assets/diff-hoOood-9.js +2 -0
  14. package/build/client/assets/diff-hoOood-9.js.map +1 -0
  15. package/build/client/assets/discord-BBRM_H3g.js +2 -0
  16. package/build/client/assets/discord-BBRM_H3g.js.map +1 -0
  17. package/build/client/assets/{discord-OBIm1mMI.js → discord-CgdmSzxV.js} +2 -2
  18. package/build/client/assets/{discord-OBIm1mMI.js.map → discord-CgdmSzxV.js.map} +1 -1
  19. package/build/client/assets/{epic-video-CzGRLoYH.js → epic-video-BFcdejfC.js} +2 -2
  20. package/build/client/assets/{epic-video-CzGRLoYH.js.map → epic-video-BFcdejfC.js.map} +1 -1
  21. package/build/client/assets/{finished-Bb9g_iPq.js → finished-C_v7hO19.js} +2 -2
  22. package/build/client/assets/{finished-Bb9g_iPq.js.map → finished-C_v7hO19.js.map} +1 -1
  23. package/build/client/assets/{index-C-VazAW9.js → index-BHeB-0xq.js} +2 -2
  24. package/build/client/assets/{index-C-VazAW9.js.map → index-BHeB-0xq.js.map} +1 -1
  25. package/build/client/assets/{index-DoUR7StN.js → index-CsPok4Mn.js} +2 -2
  26. package/build/client/assets/{index-DoUR7StN.js.map → index-CsPok4Mn.js.map} +1 -1
  27. package/build/client/assets/login-Ca9EDpZj.js +2 -0
  28. package/build/client/assets/{login-L4mUv67t.js.map → login-Ca9EDpZj.js.map} +1 -1
  29. package/build/client/assets/manifest-93b38e47.js +1 -0
  30. package/build/client/assets/{mdx-CGcvotZI.js → mdx-DvqHp8UI.js} +2 -2
  31. package/build/client/assets/{mdx-CGcvotZI.js.map → mdx-DvqHp8UI.js.map} +1 -1
  32. package/build/client/assets/{onboarding-Ci4QCevA.js → onboarding-Dc2TmI9y.js} +2 -2
  33. package/build/client/assets/{onboarding-Ci4QCevA.js.map → onboarding-Dc2TmI9y.js.map} +1 -1
  34. package/build/client/assets/test-Cy-fo6gv.js +2 -0
  35. package/build/client/assets/{test-CxCjtGOl.js.map → test-Cy-fo6gv.js.map} +1 -1
  36. package/build/client/assets/tests-DmimqC1q.js +4 -0
  37. package/build/client/assets/tests-DmimqC1q.js.map +1 -0
  38. package/build/client/assets/user-DvujSs-t.js +2 -0
  39. package/build/client/assets/{user-D6tTg1yS.js.map → user-DvujSs-t.js.map} +1 -1
  40. package/build/server/index.js +47 -21
  41. package/build/server/index.js.map +1 -1
  42. package/package.json +3 -3
  43. package/build/client/assets/diff-B5EME8RQ.js +0 -2
  44. package/build/client/assets/diff-B5EME8RQ.js.map +0 -1
  45. package/build/client/assets/discord-pvbkb0tl.js +0 -2
  46. package/build/client/assets/discord-pvbkb0tl.js.map +0 -1
  47. package/build/client/assets/login-L4mUv67t.js +0 -2
  48. package/build/client/assets/manifest-afe7bbfb.js +0 -1
  49. package/build/client/assets/test-CxCjtGOl.js +0 -2
  50. package/build/client/assets/tests-DWqwnWIn.js +0 -4
  51. package/build/client/assets/tests-DWqwnWIn.js.map +0 -1
  52. package/build/client/assets/user-D6tTg1yS.js +0 -2
@@ -3780,19 +3780,20 @@ async function userHasAccessToWorkshop({
3780
3780
  request,
3781
3781
  forceFresh
3782
3782
  }) {
3783
+ var _a2;
3784
+ const config = getWorkshopConfig();
3785
+ const {
3786
+ product: { host, slug }
3787
+ } = config;
3788
+ if (!slug) return true;
3783
3789
  if (ENV.EPICSHOP_DEPLOYED) {
3784
3790
  const cookieHeader = request.headers.get("Cookie");
3785
3791
  if (!cookieHeader) return false;
3786
3792
  const cookies = cookie__default.parse(cookieHeader);
3787
- return cookies.skill === "1";
3793
+ return ((_a2 = cookies.skill) == null ? void 0 : _a2.split(",").includes(slug)) ?? false;
3788
3794
  }
3789
3795
  const authInfo = await getAuthInfo();
3790
3796
  if (!authInfo) return false;
3791
- const config = getWorkshopConfig();
3792
- const {
3793
- product: { host, slug }
3794
- } = config;
3795
- if (!slug) return true;
3796
3797
  return cachified({
3797
3798
  key: `user-has-access-to-workshop:${host}:${slug}`,
3798
3799
  cache: fsCache,
@@ -4484,6 +4485,10 @@ function useOptionalDiscordMember() {
4484
4485
  const data = useRouteLoaderData("root");
4485
4486
  return data == null ? void 0 : data.discordMember;
4486
4487
  }
4488
+ function useUserHasAccess() {
4489
+ const data = useRouteLoaderData("root");
4490
+ return (data == null ? void 0 : data.userHasAccess) ?? false;
4491
+ }
4487
4492
  function useEpicProgress() {
4488
4493
  const data = useRouteLoaderData("root");
4489
4494
  const progressFetcher = useFetchers().find(
@@ -6579,7 +6584,7 @@ import(${JSON.stringify(testScriptPath)}).then(
6579
6584
  )
6580
6585
  `
6581
6586
  );
6582
- const testScriptTag = userHasAccess ? `<script type="module">${testScriptSrc}<\/script>` : `<h1>Purchase Required</h1><p>You must purchase the workshop to run the tests</p>`;
6587
+ const testScriptTag = userHasAccess ? `<script type="module">${testScriptSrc}<\/script>` : `<h1>Access Denied</h1><p>You must login or register for the workshop to run the tests</p>`;
6583
6588
  const htmlFile = path.join(app.fullPath, "index.html");
6584
6589
  const hasHtml = await fsExtra.pathExists(htmlFile);
6585
6590
  if (hasHtml) {
@@ -10595,6 +10600,7 @@ function Diff({
10595
10600
  diff,
10596
10601
  allApps
10597
10602
  }) {
10603
+ const userHasAccess = useUserHasAccess();
10598
10604
  const submit = useSubmit();
10599
10605
  const [params] = useSearchParams();
10600
10606
  const paramsWithForcedRefresh = new URLSearchParams(params);
@@ -10611,6 +10617,17 @@ function Diff({
10611
10617
  /* @__PURE__ */ jsx("input", { type: "hidden", name: key, value }, key)
10612
10618
  );
10613
10619
  }
10620
+ if (!userHasAccess) {
10621
+ return /* @__PURE__ */ jsxs("div", { className: "w-full p-12", children: [
10622
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4 text-center", children: [
10623
+ /* @__PURE__ */ jsx("p", { className: "text-2xl font-bold", children: "Access Denied" }),
10624
+ /* @__PURE__ */ jsx("p", { className: "text-lg", children: "You must login or register for the workshop to view the diff." })
10625
+ ] }),
10626
+ /* @__PURE__ */ jsx("div", { className: "h-16" }),
10627
+ /* @__PURE__ */ jsx("p", { className: "pb-4", children: "Check out this video to see how the diff tab works." }),
10628
+ /* @__PURE__ */ jsx(DeferredEpicVideo, { url: "https://www.epicweb.dev/tips/epic-workshop-diff-tab-demo" })
10629
+ ] });
10630
+ }
10614
10631
  return /* @__PURE__ */ jsx(
10615
10632
  Suspense,
10616
10633
  {
@@ -11117,6 +11134,9 @@ function useAnsiToHtml() {
11117
11134
  );
11118
11135
  return ansi;
11119
11136
  }
11137
+ function stripCursorMovements(data) {
11138
+ return data.replace(/\u001b\[\d+A/g, "").replace(/\u001b\[\d+K/g, "");
11139
+ }
11120
11140
  const testRunnerStatusDataSchema = z$1.intersection(
11121
11141
  z$1.object({
11122
11142
  type: z$1.literal("epicshop:test-status-update"),
@@ -11234,7 +11254,7 @@ function InBrowserTestRunner({
11234
11254
  {
11235
11255
  className: "max-h-48 overflow-y-auto p-4 scrollbar-thin scrollbar-thumb-scrollbar",
11236
11256
  dangerouslySetInnerHTML: {
11237
- __html: ansi.toHtml(message.error)
11257
+ __html: ansi.toHtml(stripCursorMovements(message.error))
11238
11258
  }
11239
11259
  }
11240
11260
  )
@@ -11403,13 +11423,13 @@ async function action$3({ request }) {
11403
11423
  formData,
11404
11424
  {
11405
11425
  success: false,
11406
- error: "You do not have access to this workshop. Purchase the workshop to be able to run the tests."
11426
+ error: "You do not have access to this workshop. Login or register for the workshop to be able to run the tests."
11407
11427
  },
11408
11428
  {
11409
11429
  status: 403,
11410
11430
  headers: await createToastHeaders({
11411
- title: "Purchase required",
11412
- description: "You do not have access to this workshop. Purchase the workshop to be able to run the tests."
11431
+ title: "Access denied",
11432
+ description: "You do not have access to this workshop. Login or register for the workshop to be able to run the tests."
11413
11433
  })
11414
11434
  }
11415
11435
  );
@@ -11545,7 +11565,7 @@ function TestOutput({ name }) {
11545
11565
  {
11546
11566
  "data-type": line.type,
11547
11567
  dangerouslySetInnerHTML: {
11548
- __html: ansi.toHtml(line.content)
11568
+ __html: ansi.toHtml(stripCursorMovements(line.content))
11549
11569
  }
11550
11570
  },
11551
11571
  line.timestamp
@@ -11694,6 +11714,18 @@ function TestUI({
11694
11714
  playgroundAppInfo
11695
11715
  }) {
11696
11716
  const [inBrowserTestKey, setInBrowserTestKey] = useState(0);
11717
+ const userHasAccess = useUserHasAccess();
11718
+ if (!userHasAccess) {
11719
+ return /* @__PURE__ */ jsxs("div", { className: "w-full p-12", children: [
11720
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-4 text-center", children: [
11721
+ /* @__PURE__ */ jsx("p", { className: "text-2xl font-bold", children: "Access Denied" }),
11722
+ /* @__PURE__ */ jsx("p", { className: "text-lg", children: "You must login or register for the workshop to view and run the tests." })
11723
+ ] }),
11724
+ /* @__PURE__ */ jsx("div", { className: "h-16" }),
11725
+ /* @__PURE__ */ jsx("p", { className: "pb-4", children: "Check out this video to see how the test tab works." }),
11726
+ /* @__PURE__ */ jsx(DeferredEpicVideo, { url: "https://www.epicweb.dev/tips/epic-workshop-test-tab-demo" })
11727
+ ] });
11728
+ }
11697
11729
  if (!playgroundAppInfo) {
11698
11730
  return /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center text-lg", children: /* @__PURE__ */ jsx("p", { children: "No tests here 😢 Sorry." }) });
11699
11731
  }
@@ -11798,13 +11830,7 @@ async function loader$i({ request, params }) {
11798
11830
  app1: app1 == null ? void 0 : app1.name,
11799
11831
  app2: app2 == null ? void 0 : app2.name,
11800
11832
  diffCode: await compileMarkdownString(
11801
- `
11802
- <div className="flex flex-col items-center justify-center p-4">
11803
- <p className="text-2xl font-bold">Purchase Required</p>
11804
- <p>You must purchase the workshop to view the diff.</p>
11805
- </div>
11806
- `
11807
- // TODO: add a video demonstrating the diff feature
11833
+ `<h1>Access Denied</h1><p>You must login or register for the workshop to view the diff</p>`
11808
11834
  )
11809
11835
  };
11810
11836
  }
@@ -12730,7 +12756,7 @@ function Login() {
12730
12756
  displayName
12731
12757
  ] }),
12732
12758
  /* @__PURE__ */ jsxs("h2", { className: "max-w-sm pt-3 text-base text-gray-700 dark:text-gray-300", children: [
12733
- "If you have purchased ",
12759
+ "If you have access to this workshop on ",
12734
12760
  displayName,
12735
12761
  ", you'll be able to watch videos, track progress, and more!"
12736
12762
  ] }),
@@ -13632,7 +13658,7 @@ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13632
13658
  __proto__: null,
13633
13659
  loader
13634
13660
  }, Symbol.toStringTag, { value: "Module" }));
13635
- 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-CbC_P7jJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-B-hHvmeV.js", "/assets/index-DlJAkutV.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/_-C82olNpL.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/error-boundary-CqgVAFiu.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-CksyTzND.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/product-f8Gd2MQ6.js", "/assets/index-j_VpxCZh.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-C7kc6YXZ.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-DWhUP9x5.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/button-CQ6cnotS.js", "/assets/tooltip-DTFU8ajx.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-pvbkb0tl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/user-D6tTg1yS.js", "/assets/discord-OBIm1mMI.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-B_1LTOMl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.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-qCtEMlS2.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.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-TpI4uc69.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.js", "/assets/set-playground-Cr0qL9N9.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-C-oFaj2l.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/preview-WJ-QYhx8.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-DoUR7StN.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-CGcvotZI.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/button-CQ6cnotS.js", "/assets/diff-B5EME8RQ.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/discord-OBIm1mMI.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DWqwnWIn.js", "/assets/preview-WJ-QYhx8.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-CxCjtGOl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/index-DlJAkutV.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/tests-DWqwnWIn.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-DHl9ou1s.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.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-Bb9g_iPq.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-C7kc6YXZ.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-C-VazAW9.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.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-L4mUv67t.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/product-f8Gd2MQ6.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-DATuycts.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-DTFU8ajx.js", "/assets/progress-C7kc6YXZ.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-CKxYA_sC.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-CGcvotZI.js", "/assets/diff-B5EME8RQ.js", "/assets/nav-chevrons-Cbc1bd_j.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-Ci4QCevA.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/button-CQ6cnotS.js", "/assets/epic-video-CzGRLoYH.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-afe7bbfb.js", "version": "afe7bbfb" };
13661
+ 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-CbC_P7jJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-B-hHvmeV.js", "/assets/index-DlJAkutV.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/_-C82olNpL.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/error-boundary-CqgVAFiu.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-DkGEbcMk.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/product-f8Gd2MQ6.js", "/assets/index-j_VpxCZh.js", "/assets/user-DvujSs-t.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-C7kc6YXZ.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-D1DCJCnR.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/button-CQ6cnotS.js", "/assets/tooltip-DTFU8ajx.js", "/assets/user-DvujSs-t.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-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/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-BBRM_H3g.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/user-DvujSs-t.js", "/assets/discord-CgdmSzxV.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-DeMmiDU5.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-DvqHp8UI.js", "/assets/progress-C7kc6YXZ.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-qCtEMlS2.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.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-5idP3Bqx.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-DvqHp8UI.js", "/assets/progress-C7kc6YXZ.js", "/assets/set-playground-Cr0qL9N9.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-C-oFaj2l.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/preview-WJ-QYhx8.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-CsPok4Mn.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-DvqHp8UI.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/button-CQ6cnotS.js", "/assets/diff-hoOood-9.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/discord-CgdmSzxV.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DmimqC1q.js", "/assets/preview-WJ-QYhx8.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-Cy-fo6gv.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/epic-video-BFcdejfC.js", "/assets/accordion-CKwXYK9L.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/tests-DmimqC1q.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-DM5HZX6r.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-DvqHp8UI.js", "/assets/progress-C7kc6YXZ.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-C_v7hO19.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-DvqHp8UI.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-C7kc6YXZ.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-BHeB-0xq.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/mdx-DvqHp8UI.js", "/assets/progress-C7kc6YXZ.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-Ca9EDpZj.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/product-f8Gd2MQ6.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-DATuycts.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-DTFU8ajx.js", "/assets/progress-C7kc6YXZ.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-CU8At1c4.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BFcdejfC.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-DvqHp8UI.js", "/assets/diff-hoOood-9.js", "/assets/nav-chevrons-Cbc1bd_j.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-Dc2TmI9y.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-DvujSs-t.js", "/assets/workshop-config-CL4F08kr.js", "/assets/button-CQ6cnotS.js", "/assets/epic-video-BFcdejfC.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/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-DP2rzg_V.js", "imports": [], "css": [] } }, "url": "/assets/manifest-93b38e47.js", "version": "93b38e47" };
13636
13662
  const mode = "production";
13637
13663
  const assetsBuildDirectory = "build/client";
13638
13664
  const basename = "/";